javascript - 如果对象属性的值是“this”,会发生什么?
问题描述
这里,属性“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
解决方案
this
作为值给self
inobj
指向创建 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
推荐阅读
- angular - Angular:如何摆脱 ExpressionChangedAfterItHasBeenCheckedError
- php - 显示内联数组
- c# - 如何修复自定义样式的依赖属性
- python - 查找仅存在于第一个字典中的键值对
- linux - 如何将一个 docker 卷上的文件解压缩到另一个卷中?
- python - 如何在不刷新页面的情况下从同一路径重新加载图像?
- android - 如何在 API 级别 28 以下的 BulletSpan 中设置子弹半径?
- javascript - 在 NestJS 中直接使用 HTTP2
- ios - 在另一个函数中使用变量
- excel - 有没有办法将 AzureDevOps 中的父工作 ID 导出到 Excel 中