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”则不会?