老師講的含糊其辭啊!
這節(jié)課的
對象原型鏈上的this
這一小節(jié)中有這樣一個case:
var?o={f:function(){return:this.a+this.b}} var?p=Object.creat(o) p.a=1 p.b=4 console.log(p.f())//5
這里老師講的太含糊其辭了,什么叫this也能指向對象p呀?
我激動了!!不好意思!!
這節(jié)課的
對象原型鏈上的this
這一小節(jié)中有這樣一個case:
var?o={f:function(){return:this.a+this.b}} var?p=Object.creat(o) p.a=1 p.b=4 console.log(p.f())//5
這里老師講的太含糊其辭了,什么叫this也能指向對象p呀?
我激動了!!不好意思!!
2015-12-13
舉報
2016-09-14
我感覺從作用域來理解this好一點
2016-06-08
一句話理解this.不用管this在什么方法中。誰調用.this指向誰就對了。
2016-04-26
此時應該是this指向p吧!所以結果。。。。。。
2015-12-13
所以,遇到與面向對象相關的this指向問題時,可以認為JavaScript引擎偷偷的在函數(shù)中傳入了一個參數(shù)(第一個參數(shù),要牢記!?。?,只是你看不見,參數(shù)值就是 . 之前的對象。。然后,方法用this來接收了這個對象,然后你就可以在方法中盡情地使用this了。
2015-12-13
告訴你個技巧,要理解this指向誰并不難。。
比如:
var?o={f:function(){return:this.a+this.b}}
o.f();
可以理解成
f(o);
及把o作為參數(shù)傳入了f中,然后f用一個變量叫做this來接收了這個o。。所以在
f中,this.a就相當于 o.a,this,b就相當于o.b
2015-12-13
我覺得你理解可能有點問題。
2015-12-13
你也確定用var p = Object.create(o); ?給 p.a = 1; 是賦值到o.a上?
2015-12-13
你確定用var p = new o;能 new出來?