亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

javascript - 求解答:實例對象調用constructor,此時constructor內的this的指向?

瀏覽:133日期:2023-04-07 11:13:12

問題描述

這個問題其實來自分析jQuery源碼的時候,看到里面使用了var ret = jQuery.merge(this.constructor(), elems );,里面this.constructor()返回的是init方法創建的空的實例對象。因此對其中this的指向產生疑惑。以下為試驗代碼:

function Person() { this.name = ’ddadaa’; console.log(this);}var p1 = new Person();p1.constructor();// Person {name: 'ddadaa'}var p2 = p1.constructor;p2(); //打印的是window

此處為什么直接調用constructor(),里面的this的指向就發生了改變,并且自動創建了一個新的對象?是不是constructor()方法的內部實現對此有所影響?

問題解答

回答1:

這個和constructor()方法的內部實現沒有什么關系,其實就是函數內this指向的問題。當函數作為對象的屬性調用的時候,this指向這個對象;當函數直接調用的時候,在非嚴格模式下,this指向window;p1.constructor指向的就是Person函數,當調用p1.constructor();時,Person是作為p1的屬性調用的,所以this指向p1;當調用var p2 = p1.constructor;p2();時,其實就相當于直接調用Person();,所以this指向window。

標簽: JavaScript
主站蜘蛛池模板: 亚欧一区| 黄色a级在线观看 | 黄色1级| 亚洲福利一区福利三区 | 小明免费视频一区二区 | 亚洲三级网 | 麻豆国产高清在线播放 | 又黄又爽又猛午夜性色播在线播放 | 一级做a爰片久久毛片 | 欧美片能看的一级毛片 | 分享一个无毒不卡免费国产 | 国产高清视频在线 | 亚洲精品国产理论电影网 | a级毛片免费在线观看 | 国产精品免费观看 | 欧美日韩一卡二卡 | 日韩经典中文字幕 | 国产v国产v片大片线观看网站 | 中国一级特黄特级毛片 | 久久亚洲精品一区成人 | 爱福利一区二区 | 国产女人在线 | 手机看片国产高清 | 亚洲欧洲一区二区三区在线 | 高清国产一区二区三区 | 高清在线观看自拍视频 | 久色亚洲 | 国产成人亚洲欧美三区综合 | 成熟女人特级毛片www免费 | 亚洲第一区精品观看 | 国产一区免费观看 | 欧美日韩亚洲一区二区三区在线观看 | 欧美成人免费大片888 | 日韩中文字幕在线免费观看 | 99精品网站 | 日本中文字幕乱码aa高清电影 | 国产三级全黄 | 国产黄三级三·级三级 | 91成人在线播放 | 欧美日韩高清一区 | 国产精品国产三级在线高清观看 |