最近在imooc看深入淺出js鹦赎,上機(jī)實(shí)踐薪伏,做了一些筆記和心得。
今天還是在復(fù)習(xí)js基礎(chǔ)蓉媳,把imooc深入淺出js的this總結(jié)一下
代碼實(shí)現(xiàn)一下譬挚,才能說服自己啊
1.全局this(瀏覽器)
this指的是window
2.一般函數(shù)的this(瀏覽器)
*node是global
*嚴(yán)格模式(strict)會(huì)指向undefined
3.作為對(duì)象方法的函數(shù)的this
注意,這個(gè)myway()函數(shù)是獨(dú)立的督怜,如果直接輸出殴瘦,this指向依舊是window
4.對(duì)象原型鏈上的this
5.get/set方法與this
使用這兩個(gè)方法改變原型的屬性值,
(插一句object.DefineProperty很有趣vue.js和avalon.js都是通過它實(shí)現(xiàn)雙向綁定的号杠,這個(gè)坑下次補(bǔ)r揭浮)
6.構(gòu)造器中的this
這有個(gè)坑。
如果直接調(diào)用函數(shù)姨蟋,this指向window屉凯。
如果作為構(gòu)造器去調(diào)用,this會(huì)指向原型為f的空對(duì)象眼溶,無return則返回10悠砚。
7.call/apply方法與this
注意這里都是ab,但是this.a堂飞、this.b指的是o的屬性
還會(huì)輸出一些無法名狀的函數(shù)值灌旧,比如以下
8.bind方法與this
o.f()是通過對(duì)象屬性調(diào)用,所以this指向o
o.g()雖然是被o調(diào)用绰筛,但是按照以前bind的綁定枢泰,顯示test