【发布时间】:2019-11-05 21:27:19
【问题描述】:
以下代码 (codepen) 不起作用。
"use strict"; //without strict "this" works, but it refers to window object
let person = {
name : "Shimon",
logName : function(){
//console.log("test") //this works
console.log(this.name); //doesn't work
}
};
//person.logName(); //works
(false || person.logName)(); //doesn't work. Uncaught TypeError: Cannot read property 'name' of undefined
我想知道为什么。
当我打电话给(false || person.logName)(); 时,我想打电话给person.logName(),它确实打电话了。
那么为什么我不能在这个方法中使用this 呢?
【问题讨论】:
-
而不是记录这个名字。您实际上可以退货。之前的 es2015 标准可能存在问题,您将其称为 self.所以生成 es2015 方法代替 person = { name:"Simon", logname(){return this.name}}
-
@bhspencer 这似乎是一个非常全球性的问题。我在那里找不到一点。如果您能指定更精确的方式,我将不胜感激。
标签: javascript