在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ let obj = {a: 1, b: 2*this.a} 這樣取不到a,是th

let obj = {a: 1, b: 2*this.a} 這樣取不到a,是this問題還是只能調用函數?

求大神解答:
let obj = {a: 1, b: 2*this.a} 這樣取不到a,是this問題還是只能調用函數?

回答
編輯回答
怪痞

關于this的指代其他回復都有講,我就不廢話了。
這個問題想要用a的值可以這樣

function Obj() {
    this.a = 1;
    this.b = 2 * this.a;
}
var obj = new Obj();
console.log(obj.b);
2017年1月27日 19:45
編輯回答
墨小白

此時this不是指向obj,另外你也取不到obj中的a,因為此時對象還沒有生成,沒有賦值給obj,所以obj仍是undefined

2017年1月25日 12:51
編輯回答
做不到
let obj = {a: 1, b: 2*this.a} 

obj.b // 這個值取決于運行的環(huán)境,簡單來說如果你是在瀏覽器全局上下文執(zhí)行就是2 * window.a

你想在對象里面使用對象里面的屬性是不現實的,因為在計算這個屬性的時候,你的對象還沒有創(chuàng)建出來,是不可能的。

就好像這樣:

 let obj = {a: 1, b: 2 * obj.a} 


因此要實現這樣的功能,需要:

 let obj = {a: 1, b: () => 2 * obj.a}
  
  obj.b()

或者this也行,但是不推薦

obj = {a: 1, b: function() {return 2 * this.a}}
  
  用法一樣的:
  
  obj.b()
2017年7月12日 02:56
編輯回答
護她命
let obj={a:1};
obj.b=2*obj.a;
2017年3月25日 17:26