Javascript 请解释reactjs中函数签名的语法
我被分配到一个正在进行的项目中。在查看代码时,我遇到了一个函数定义,其签名如下所示:Javascript 请解释reactjs中函数签名的语法,javascript,reactjs,Javascript,Reactjs,我被分配到一个正在进行的项目中。在查看代码时,我遇到了一个函数定义,其签名如下所示: handleInputs({ target: { name, value } }) { handleInputs是在textfields的onChange事件上调用的函数。它被称为 onChange={this.handleInputs} 我试图在控制台中输出“target”的值,但它抛出了一个错误。而“name”和“value”的值分别是输入控件的名称和控件中的值 有人能解释一下函数签名吗?这是对象解构赋
handleInputs({ target: { name, value } }) {
handleInputs是在textfields的onChange事件上调用的函数。它被称为
onChange={this.handleInputs}
我试图在控制台中输出“target”的值,但它抛出了一个错误。而“name”和“value”的值分别是输入控件的名称和控件中的值
有人能解释一下函数签名吗?这是对象解构赋值语法。我们可以将对象作为参数传递给函数,并根据指定的函数参数(对象键)将其解压缩。在您的例子中,
this.handleInputs
这应该是一个具有键target:{name,value}
的对象。在函数内部,我们可以直接访问键值。
通过以下mozilla文档中的示例,您可以更好地理解语法。有关更多详细信息,请参见此
function whois({displayName, fullName: {firstName: name}}) {
console.log(displayName + ' is ' + name);
}
var user = {
id: 42,
displayName: 'jdoe',
fullName: {
firstName: 'John',
lastName: 'Doe'
}
};
console.log('userId: ' + userId(user)); // "userId: 42"
whois(user); // "jdoe is John"
现在,这很有意义,因为React将事件对象传递给事件处理程序。因此,target对应于事件对象的target属性。谢谢你的回答!最后一个疑问是,如果您能够解决,为什么安慰“target”会抛出错误,而安慰“name”和“value”则不会?