使用动态参数类型调用函数

优素福

如何调用不同类型的函数,因为我有时想用事件对象调用它,有时用数组或除事件以外的任何其他东西调用它

const onChange = (e) => {
    if( e is Event ) { // something like this
        // do some stuff with e.target.value
    } else { // different argument type
        ...
    }
}

用事件对象调用它

<input type="text" onChange={ (e) => onChange(e) } />

使用不同的参数类型调用它

<input type="checkbox" onChange={ (e) => {
    let newValues;
    // do some calculation
    ...
    onChange(newValues); 
}}/>
...
F-CJ

好吧,如果你typeof e在这两种情况下都这样做,你会得到object一个响应,因为事件和数组都是 javascript 中的对象。

要检测对象是否是您拥有的数组Array.isArray()

并检测一个对象是否是一个 DOM 事件,你可以这样做e instanceof Event

在 reactjs 中,您必须将其更改为 e.nativeEvent instanceof Event

所以你可以做这样的事情:

const a = document.getElementById('test');

const onClick = (e) => {
    // use (e.nativeEvent instanceof Event) in reactjs instead
    if(e instanceof Event) { 
        // do some stuff with e.target.value
        console.log("Response: I received an event");
    } else if (Array.isArray(e)) { // it's an array
        console.log("Response: I received an array");
    }
}

a.addEventListener('click', onClick);

console.log('Call the method passing an array');
onClick([2,3,4]);
<div id='test'>click</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用多态参数动态调用函数

如何使用动态参数输入调用函数

动态参数调用函数

使用动态数量的参数调用动态函数

类型动态对象函数调用

使用python中的参数调用函数(动态属性访问)

如何动态打印函数调用中使用的参数?

调用函数作为参数类型

使用Generic参数调用函数需要类型的no-arg init

使用结构类型参数调用c ++ dll的导出函数的powershell

使用参数手动调用内置类型函数

如何动态加载和调用具有库特定类型作为函数参数的符号

如何使用具有参数化返回类型的函数参数调用函数

调用带有动态参数的函数

具有多个参数的动态调用函数

带有动态参数的调用函数

动态设置函数文字的参数类型

动态确定C中函数参数的类型?

为什么在使用CHAR类型的参数调用时构造函数选择INT类型而不是SHORT?

如何使用带有函数类型和其他类型的接口参数调用方法

如何使用类型名和非类型名模板参数调用泛型函数?

模板参数类的函数调用的返回类型

调用函数,无论其参数类型如何

.Net反射使用通用参数调用函数-如何将类型传递给函数

使用C#中的表达式树动态调用与参数类型相对应的方法

使用参数提取函数调用

Tkinter,使用参数调用函数

在CVC4中使用类型参数调用自定义数据类型的无参数构造函数

使用dplyr和NSE动态构造具有不同参数的函数调用