提问人:aaKhan 提问时间:6/4/2019 最后编辑:ShiderszaaKhan 更新时间:4/12/2022 访问量:76
代码输出一个数字而不是未定义?
The code outputs a number instead of undefined?
问:
根据我的理解,当我调用时,下面的代码应该输出 undefined,而是记录一个数字。我正在使用 chrome。有人可以详细说明为什么会发生这种情况吗?提前致谢。hi()
代码的屏幕截图:
const obj = {
name: "abc",
sayHi: function() {
console.log(this.name)
}
}
obj.sayHi();
let hi = obj.sayHi;
hi();
答:
0赞
John Slegers
4/12/2022
#1
调用 时,指 。obj.sayHi()
this
obj
调用时,是指对象。hi()
this
window
如果你想成为 ,你需要使用 .this
undefined
"use strict";
如果想要,可以将函数设置为。this
obj
bind
obj
演示
"use strict"
const obj = {
name: "abc",
sayHi: function() {
console.log(this)
}
}
obj.sayHi();
let hi1 = obj.sayHi;
hi1();
let hi2 = obj.sayHi.bind(obj);
hi2();
下一个:在对象赋值中自引用键
评论
this
function
this.name
window.name
"use strict";
TypeError: Cannot read property 'name' of undefined
this
undefined
"use strict"