这里,属性“self”的值为“this”。什么是当前情景的输出
var obj = {
foo: "bar",
self: this,
myfunc: function() {
console.log("1 " + obj.foo);
console.log("2 " + self.foo);
(function() {
console.log("3 " + obj.foo);
console.log("4 " + self.foo);
})();
}
};
obj.myfunc(); //invoking the object's function
答案 0 :(得分:2)
this
作为self
中obj
的值,指向创建obj的人的上下文。如果直接运行,则为window
对象。
this
中使用的 myFunc
指向obj
对象的上下文,因此您可以将this.foo
的值设为“bar”。
// context: window
var obj = {
foo: "bar",
self: this,
myfunc: function() { // context: obj
console.log("1 " + this.foo);
console.log("2 " + this.self.foo);
(function() { // context: window
console.log("3 " + this.obj.foo);
console.log("4 " + this.self.foo);
})();
}
};
obj.myfunc(); //invoking the object's function