Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “之间的区别是什么?”;名称(){}";及;函数名(){}";?_Javascript - Fatal编程技术网

Javascript “之间的区别是什么?”;名称(){}";及;函数名(){}";?

Javascript “之间的区别是什么?”;名称(){}";及;函数名(){}";?,javascript,Javascript,我想知道Name(){}和function Name(){ }名字=()=>{} 当我使用Name(){}时,我得到了一个错误,然后我将它修改为Name=()=>{},之后它就工作了 //this doesn't work. onClickHandler(){ let nextVersion = parseInt(this.state.version, 10) + 1 this.setState({ version: nextVersion.toFixed(1)}) } //this

我想知道Name(){}和function Name(){ }名字=()=>{}

当我使用Name(){}时,我得到了一个错误,然后我将它修改为Name=()=>{},之后它就工作了

//this doesn't work.
onClickHandler(){
 let nextVersion = parseInt(this.state.version, 10) + 1

 this.setState({ version: nextVersion.toFixed(1)})
}


//this works.
onClickHandler = () => {
 let nextVersion = parseInt(this.state.version, 10) + 1

 this.setState({ version: nextVersion.toFixed(1)})
}

第一个示例的语法无效。它不定义或调用任何内容,并将导致错误,因为JavaScript运行时会认为您希望调用
onClickHandler
函数,但不理解以下块(由
{}
分隔):

onClickHandler(){
让nextVersion=parseInt(this.state.version,10)+1
this.setState({version:nextVersion.toFixed(1)})

}
第一个示例的语法无效。它不定义或调用任何内容,并将导致错误,因为JavaScript运行时会认为您希望调用
onClickHandler
函数,但不理解以下块(由
{}
分隔):

onClickHandler(){
让nextVersion=parseInt(this.state.version,10)+1
this.setState({version:nextVersion.toFixed(1)})

}
我想这可能就是您可能正在谈论的内容。假设我们有一个点击事件:

鉴于此html:

<button id="button">click me</button>
假设您在第一个示例中使用了function关键字,它如下所示:

function onClickHandler(){
 let nextVersion = parseInt(this.state.version, 10) + 1

 this.setState({ version: nextVersion.toFixed(1)})
}
在本例中,
这个
实际上就是您正在单击的dom元素

在第二个示例中:

const onClickHandler = () => {
 let nextVersion = parseInt(this.state.version, 10) + 1

 this.setState({ version: nextVersion.toFixed(1)})
}

处理程序利用了一个arrow函数,该函数具有词法界
this
。这意味着
This
或context的值绑定到原始上下文。既然你说“这行得通”,那就意味着它是你想要的,而不是按钮(又名.dom元素)。

我想这可能就是你可能要说的。假设我们有一个点击事件:

鉴于此html:

<button id="button">click me</button>
假设您在第一个示例中使用了function关键字,它如下所示:

function onClickHandler(){
 let nextVersion = parseInt(this.state.version, 10) + 1

 this.setState({ version: nextVersion.toFixed(1)})
}
在本例中,
这个
实际上就是您正在单击的dom元素

在第二个示例中:

const onClickHandler = () => {
 let nextVersion = parseInt(this.state.version, 10) + 1

 this.setState({ version: nextVersion.toFixed(1)})
}

处理程序利用了一个arrow函数,该函数具有词法界
this
。这意味着
This
或context的值绑定到原始上下文。既然你说“这行得通”,那就意味着它是你想要的,而不是按钮(又名.dom元素)。

为了澄清,我会加上我的两分钱

你的第一个例子

onClickHandler(){
 let nextVersion = parseInt(this.state.version, 10) + 1

 this.setState({ version: nextVersion.toFixed(1)})
}
是定义ES6类方法的有效语法。举个例子:

class MyAwesomeClass{
构造函数(){
this.name=“Isaac”
}
printName(){
console.log(this.name)
}
}
设m=newmyawesomeclass();

m、 printName()为了澄清,我会加上我的两分钱

你的第一个例子

onClickHandler(){
 let nextVersion = parseInt(this.state.version, 10) + 1

 this.setState({ version: nextVersion.toFixed(1)})
}
是定义ES6类方法的有效语法。举个例子:

class MyAwesomeClass{
构造函数(){
this.name=“Isaac”
}
printName(){
console.log(this.name)
}
}
设m=newmyawesomeclass();

m、 printName()取决于你所说的“它工作”是什么意思<代码>此
不会引用您期望的内容。第一个是无效语法,没有任何意义。第二个是对Arrow函数的变量赋值。它与上下文和
this
的值有关。与函数相关的不是当前状态,它需要Function关键字,就像@ScottMarcus所说的,第一个是无效语法“其他情况”是当您将它用作更广泛语法上下文的一部分时,例如
定义或对象文字。但它本身就是一个语法错误。这就像说有时
-
有效,有时无效。它在一个表达式中工作,而不是作为一个独立的语句。这取决于你所说的“它工作”是什么意思<代码>此
不会引用您期望的内容。第一个是无效语法,没有任何意义。第二个是对Arrow函数的变量赋值。它与上下文和
this
的值有关。与函数相关的不是当前状态,它需要Function关键字,就像@ScottMarcus所说的,第一个是无效语法“其他情况”是当您将它用作更广泛语法上下文的一部分时,例如
定义或对象文字。但它本身就是一个语法错误。这就像说有时
-
有效,有时无效。它在表达式中工作,而不是作为独立语句。第一个示例,
onClickHandler(){}
是定义ES6类方法的有效语法。@IsaacVidrine是由OP编写的,它是无效的。正如编写的一样,它是肯定的,但这与问题的重点无关。@IsaacVidrine除了问题的重点之外,它是什么?OP没有提到任何关于ES6类的内容,事实上,它声明第一种语法不起作用。这正是问题的重点。因为他的问题是
,我想知道Name(){}和function Name(){}以及Name=()=>{}
之间有什么区别。并且说他的第一个例子是无效的javascript语法只是部分正确。考虑到他使用它的方式,是的。但为什么不解释一下他用错了,而不是简单地说这是无效的语法,句号。现在其他人会看到你的答案,并认为它总是无效的语法。然后,当他们看到它实际被使用时会感到困惑。第一个示例,
onClickHandler(){}
是定义ES6类方法的有效语法。@IsaacVidrine是由OP编写的,它是无效的。正如所写的,它是肯定的,但这与问题的重点无关。@IsaacVidrine除了问题的重点之外,它是什么?OP没有提到任何关于ES6类的内容,事实上,它声明第一种语法不起作用。这正是问题的重点,因为他的