課程
/前端開發(fā)
/JavaScript
/zepto設計和源碼分析
我想問下,就是這個函數(shù)直接定義和在原型中定義在實際開發(fā)中有什么區(qū)別
2018-05-25
源自:zepto設計和源碼分析 1-3
正在回答
直接 `arr.test` 是給arr這個數(shù)組(本質(zhì)還是對象)新增了一個新屬性,值為一個函數(shù)。
而 `arr.__proto__.test` 則是加在arr的原型上的。
類比面向對象的變成思想。假設一直狗會叫,那么這個方法是針對每一只具體的狗逐個去賦予它這個方法呢?還是直接在狗的這個抽象類對象上?
不過在實例代碼中用prototype的更多一些吧,不過和 `__proto__` 也是有區(qū)別的,簡單可以說prototype是從Array上訪問,而在具體以的某個? `[]` 上是不行。不過 `Array.prototype === [].__proto__`? ,因此可通過[].__proto__訪問修改Array.prototype。 具體區(qū)別需要深入JavaScript的原型鏈機制了。
舉報
介紹zepto的設計框架和實現(xiàn)原理,看完后能輕松解讀zepto所有源碼
2 回答文檔在哪里?怎么沒有看到?
1 回答$.fn的疑問
3 回答源碼里的 var undefined 是干嘛的?有人知道嗎?
2 回答測試修改了arr的__proto__會影響到其他的數(shù)組對象
1 回答下載下來的文檔有問題
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關注慕課網(wǎng)微信公眾號
2018-06-02
直接 `arr.test` 是給arr這個數(shù)組(本質(zhì)還是對象)新增了一個新屬性,值為一個函數(shù)。
而 `arr.__proto__.test` 則是加在arr的原型上的。
類比面向對象的變成思想。假設一直狗會叫,那么這個方法是針對每一只具體的狗逐個去賦予它這個方法呢?還是直接在狗的這個抽象類對象上?
不過在實例代碼中用prototype的更多一些吧,不過和 `__proto__` 也是有區(qū)別的,簡單可以說prototype是從Array上訪問,而在具體以的某個? `[]` 上是不行。不過 `Array.prototype === [].__proto__`? ,因此可通過[].__proto__訪問修改Array.prototype。 具體區(qū)別需要深入JavaScript的原型鏈機制了。