javascript - 为什么js对象的属性不能用this调用另一属性

查看:92
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆