第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

return new ajQuery.fn.init(selector);


init里面直接返回對象出來了,為什么前面還要new呢。

正在回答

4 回答

new是用來分隔每個新對象的作用域的,如果不用,那么aQuery.prototype上的屬性就會被污染,就是說所有的對象共享一份aQuery.prototype屬性

0 回復(fù) 有任何疑惑可以回復(fù)我~

如果不用new,返回的是aQuery.prototype,當(dāng)你每次調(diào)用aQuery(selector)的時候返回的都是同一個(aQuery.prototype)對象,一旦對其進行操作就會對所有的造成影響。加new之后對每次返回的對象進行分離,即this被分離,每次都是一個新的實例對象(__proto__屬性引用同一個原型對象aQuery.prototype,故擁有aQuery.prototype所有的屬性),你對實例對象操作也只會影響其自身的屬性,而不會影響aQuery.prototype。好比,aQuery("aaa").bbb = "ccc"只會改變實例對象的屬性(即使aQuery.prototype有bbb = "ddd"也不會有影響,且調(diào)用的時候會優(yōu)先查找對象自身的屬性)。

4 回復(fù) 有任何疑惑可以回復(fù)我~

不通過new的話,會出錯,因為this是個關(guān)鍵字不能作為對象名稱,它只是作為作用域交接的中間人。根據(jù)前面講的new的4個步驟來說,關(guān)鍵在于第二步,通過this來指向新生成的對象。也就是說return this == return (這個新生成的對象)。

1 回復(fù) 有任何疑惑可以回復(fù)我~

返回的可是this,需要通過操作符new

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號