-
1- 減少變量定義 -- 因為有的變量定義時會執(zhí)行new函數(shù)
2- 在做react時 可以根據(jù)需求實現(xiàn)部分的jquery的功能 而不必全部引入 --- 這個也就提供了一些學(xué)習(xí)源碼實現(xiàn)的思路:你在開發(fā)中有些功能跟jquery/zepto提供的功能很像,那么你就可以去zeptoy源碼中搜對應(yīng)的函數(shù),看這個函數(shù)的實現(xiàn)思路 -- 這個可都是非常優(yōu)秀的開發(fā)人員的手筆啊~
查看全部 -
1- 原型 函數(shù) 都是對象的一種
2- 函數(shù)是一種可執(zhí)行對象
3- 原型是內(nèi)置的一個屬性 一般構(gòu)建方法是內(nèi)建一個對象fn 然后把所有的屬性加到fn中? 再把這個fn賦值到prototype上
查看全部 -
1- 用函數(shù)內(nèi)建的zepto對象管理所有的內(nèi)部函數(shù)
2- zepto.init的作用就是把傳入的多種情況的selectort統(tǒng)一成zepto自定義的內(nèi)部處理對象;
查看全部 -
zepto-core基本的設(shè)計結(jié)構(gòu)
查看全部 -
特別是當(dāng)你寫但三方庫的時候,一定不要寫公共變量,因為這樣有可能你的公共變量會污染到使用者的變量。所有的變量都用函數(shù)圈起來,劃定它的作用域
查看全部 -
這里就是第一步初步的設(shè)計
1- 通過工廠模式--該自執(zhí)行匿名函數(shù)返回一個加工后的對象給zepto變量
2- 然后再把這個zepto變量掛載到全局變量window上,用Zepto為屬性名;如果¥未被占用,也掛在$上
查看全部 -
插件機制:
就是往原型里加屬性:
arr.__proto__.customFn // 只是應(yīng)用于arr一個變量 -- 驗證下~
arr.__proto__.constructor.prototype.customFn // 是應(yīng)用于原型的?
查看全部 -
設(shè)計思路:
1- 給自己定義的對象添加自定義的方法:
-- 修改對象的__proto__指向,指向自己的所定義的對象(原型,里面有自定義的方法)
-- 同時該對象的部分功能可以繼承原來原型的方法,例如{ push:Array.prototype.push ...}
查看全部 -
總結(jié):是個好習(xí)慣:
1- 每一個函數(shù),都有一個prototype屬性(因為原型的本質(zhì)是函數(shù)??Array 都是函數(shù))
2- 所有通過函數(shù)new出來的東西(具體的對象, var arr = new Array(); 這個arr就是),每一個都有一個__proto__指向該函數(shù)的prototype
-- prototype(顯式原型)
--__proto__(隱式原型)
3- 對象的方法/屬性 -- 會從自身出發(fā),沿著原型鏈(__proto__)去尋找,__proto__類似于鏈表的指針
4- __proto__是可修改的
查看全部 -
對象的__proto__可以被重新賦值
之后可能就會與之前的原型鏈斷開 所繼承的方法也就不復(fù)存在了
查看全部 -
這個是.運算符的實現(xiàn)思路(不是讓我們手動去跟著__proto__沿著原型鏈去找):
1- 去__proto__中找 實際思路就是沿著原型鏈找某個原型提供了這個方法
2- __proto__有點兒像鏈表中的指針,指向父級原型的prototype
查看全部 -
通過函數(shù)(例如Fn)new出來的(例如a), a都有一個__proto__指向Fn的prototype
查看全部 -
對象要能夠使用某種方法(以.屬性的方式使用):
1- 得把這個方法加到這個對象的原型鏈的某一個原型上
2- 原型的獲取可以通過對象的prototype或者__proto__屬性來獲取
3- 原型獲取到后還是一個對象,可以增加一些方法/屬性
筆記:
1- fn.prototype ===? {
????????constructor: {...} ,// 指向fn本身
????????__proto__: {...} //?
?????}
查看全部 -
我們需要招聘有產(chǎn)品觀念的程序員:
1- 要有文檔意識:當(dāng)你寫的一些產(chǎn)品/組件/第三方庫的時候,一定要不厭其煩地提供準(zhǔn)確詳細(xì)的說明,并維護它。它的質(zhì)量和壽命,決定著你的產(chǎn)品的壽命;
2- 要有反饋與迭代的意識,根據(jù)反饋/調(diào)查結(jié)果來調(diào)整產(chǎn)品;
查看全部 -
所有通過函數(shù)new出來的東西,這個東西都有一個__proto__指向這個函數(shù)的protyotype:
prototype:(顯示)原型
__proto__:隱式原型
當(dāng)你想要使用一個對象(或者一個數(shù)組)的某個功能時,如果該對象本身具有這個功能,則直接使用,如果該對象本身沒有這個功能,則去__proto__中找
查看全部 -
重寫圖,原理
查看全部 -
通過 重寫__proto__ 屬性,增加屬性,并通過原型引用數(shù)組方法
查看全部 -
JS每一個函數(shù)都有prototype屬性
查看全部 -
1.每一個函數(shù),都有一個prototype屬性,無論是自定義的,還是系統(tǒng)內(nèi)置的。都有一個constructor指向它本身。 2.所有通過函數(shù)new出來的東西,這個東西都有一個__proto__指向這個函數(shù)的prototype,prototype:顯式原型,__proto__:(隱式)原型。 3.當(dāng)你想要使用一個對象(或者一個數(shù)組)的某個功能時:如果該對象本身具有這個功能,則直接使用;如果該對象本身沒有這個功能,則去__proto__中找。
查看全部 -
javascript 三座大山:
1. 原型和原型鏈
2. 上下文環(huán)境和作用域
3. 單線程和異步查看全部 -
原型屬性增加,__proto__是原型傳遞,繼承,實例的本質(zhì)。js中所有對象都繼承自O(shè)bject根對象,表面上是prototype,但本質(zhì)離不開__proto__ ?
查看全部
舉報