var obj = {};
obj.fn = function() {
return this;
}
输出:窗口对象
是'这'不关心'obj',它是属性'fn'的对象?
但如果我在下面声明如下......
var obj = {
fn: function() {
console.log(this);
}
}
输出是...... 对象对象
他们不一样吗?
答案 0 :(得分:3)
您的示例都应使用this
的控制台日志返回对象本身,在全局范围内阅读this
时会记录窗口对象:
var obj = {};
obj.fn = function() {
console.log(this);
}
// logs window
console.log(this);
// logs object
obj.fn();
var obj1 = {
fn: function() {
console.log(this);
}
}
// logs object
obj1.fn();
this
将始终采用包含范围的值