如何称呼“词法上的这个”?或者javascript中的箭头语法

How to call "lexical this" or arrow syntax for this in javascript?

本文关键字:或者 javascript 语法 词法      更新时间:2023-09-26

我想调用myObj。用myObj作为它的运行范围。我知道bind,它工作得很好。

var myObj = {"name1":"BP",
         "sayHello":function(){
              console.log("Hello " + this.name1);
          }}
myObj.sayHello();
setTimeout(myObj.sayHello,2000);  //Hello undefined
setTimeout(myObj.sayHello.bind(myObj),2000);

我的问题是在这种方法,

setTimeout(() => myObj.sayHello, 2000);

这个语法有什么问题?请让我知道和如何实现=>运营商在我的场景。(我想打印Hello BP).

不幸的是,我们在JavaScript中没有胖箭头语法。这个来源:

http://javascriptweblog.wordpress.com/2012/04/09/javascript-fat-city/

说它已经在路上了

试试这个:

setTimeout(function(){
    myObj.sayHello();
}
, 2000);

我想你可能已经知道哪些浏览器支持/不支持这种语法。

鉴于此,代码中的问题是您没有调用sayHello()方法。

//                             vv---invoke the function
setTimeout(() => myObj.sayHello(), 2000);

否则,函数体只引用.sayHello而不调用它。

在Firefox中测试它,你会看到它的工作

相关文章: