我想用myObj作为其运行范围来调用myObj.sayHello。我知道绑定,它工作正常。
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)。
我想您可能已经知道哪些浏览器不支持该语法。
鉴于此,代码中的问题是您没有调用该sayHello()
方法。
// vv---invoke the function
setTimeout(() => myObj.sayHello(), 2000);
否则,函数主体仅引用.sayHello
而不调用它。
在Firefox中对其进行测试,您将看到它可以正常工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句