javascript - 为什么js对象的属性不能用this调用另一属性
本文介绍了javascript - 为什么js对象的属性不能用this调用另一属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
obj = {
a: 123,
b: this.a
c: function () {
return this.a;
}
};
obj.b; // undefined
obj.c(); // 123
请问这是为什么?
谢谢大家为我解答这个问题,现在我已经明白是怎么回事了。
总结一下:
1、在全局运行上下文中(在任何函数体外部),this 指代全局对象,无论是否在严格模式下。
2、在函数内部,this的值取决于函数是如何调用的。
感谢 @不爱吃西红柿的鱼
分享一下他的文章,让我受益匪浅:js中this的一些总结
解决方案
谢邀。你这是对象字面量的形式在申明一个对象变量。
相当于
obj = new Object();
obj.a=123;
obj.b = this.a;
此时的this指向的是不是obj这个对象,而是当前作用域空间的那个this指向。
这篇关于javascript - 为什么js对象的属性不能用this调用另一属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文