摘要:對象默認值填充對象屬性不存在時,使用運算符填充屬性不確定時避免報錯當檢索一個的值時,可以通過運算符來避免錯誤。例報錯先檢索是否為,后避免執行后面報錯檢測對象中是否存在該屬性,不會查找該對象的原型鏈。
對象 默認值填充
對象屬性不存在時,使用||運算符填充:obj.name||"lpp"
object屬性不確定時避免報錯當檢索一個undefined的值時,可以通過 &&運算符來避免錯誤。
例:
let obj ={}; obj.name //undefined obj.name.frist //報錯 obj.name && obj.name.frist //先檢索 obj.name是否為undefined ,false后避免執行后面報錯hasOwnproperty
檢測對象中是否存在該屬性,不會查找該對象的原型鏈。
最小化使用全局變量在全局創建空的對象
var MYAPP = {}; //讓該空對象作為唯一的全局對象 MYAPP.WriteCode = { //babala }
最小化使用全局變量可以減少全局污染、降低和其他庫框架的重名互相影響
給類型添加方法Object.prototype可以給所有構造函數對象添加方法
Object.prototype.showA = function () { console.log(this.a) } let o = {a : 1}; o.showA(); //1 //屆時,想到了jquery里的封裝 $(el).on("click",function(){ console.log(1) })
嘗試實現:
首先對象是一個dom對象,其次聲明了一個on函數,里面兩個參數分別是事件和匿名函數;
那么先從dom對象入手,給該函數添加方法必須找到該對象實例的構造函數,在控制臺輸入 document.__proto__找到 HTMLElement 再比如
"str".__proto__ : String //這樣就找到該對象實例的構造函數 HTMLElement.prototype.on = function(evt,fun){ this[evt] = fun; } el.on("onclick",function(){ console.log("balabla"); })模塊 通過函數和閉包來構造模塊
模塊模式的一般形式是:一個定義了私有變量和函數的函數,利用閉包創建可以訪問私有變量和函數的特權函數;最后返回這個特權函數,或者把他們保存到一個可訪問的地方。
利:摒棄全局變量減少全局變量污染、安全促使信息隱藏、讓思路清晰明了
例():
//做飯 foodMaterial spice為私有屬性 let cook = function(){ let FoodMaterial = "Tomatoes"; //食材:西紅柿 let Spice = "食用鹽"; //作料:食用鹽 return { buy:function(){ console.log("購買" + FoodMaterial + "和" + "Spice" ); }, doFood:function(){ console.log(`開始做${FoodMaterial}`); } } } let o = cook(); o.buy();//購買Tomatoes和Spice o.doFood();//開始做Tomatoes突然想吃肉,不吃西紅柿了
//做飯 let cook = function(){ let FoodMaterial = "Tomatoes"; //食材:西紅柿 let Spice = "食用鹽"; //作料:食用鹽 return { buy:function(){ console.log("購買" + FoodMaterial + "和" + "Spice" ); }, doFood:function(){ console.log(`開始做${FoodMaterial}`); }, setFood:function(food){ //未傳參則不執行賦值 food && (FoodMaterial = food); } } } let o = cook(); o.setFood("肉"); o.buy(); //購買肉和Spice o.doFood();//開始做肉
可以使用傳參的形式改變函數內的變量
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/96721.html
摘要:推薦高性能網站建設指南高性能網站建設進階指南理由在讀完前幾本書之后我們對前端的性能和自己的代碼的效率已經達到相當的高度了,然后我們在接觸一些前端工程師的一些精髓。 WEB前端研發工程師,在國內算是一個朝陽職業,這個領域沒有學校的正規教育,大多數人都是靠自己自學成才。本文主要介紹自己從事web開發以來(從大二至今)看過的書籍和自己的成長過程,目的是給想了解JavaScript或者是剛...
摘要:推薦高性能網站建設指南高性能網站建設進階指南理由在讀完前幾本書之后我們對前端的性能和自己的代碼的效率已經達到相當的高度了,然后我們在接觸一些前端工程師的一些精髓。 WEB前端研發工程師,在國內算是一個朝陽職業,這個領域沒有學校的正規教育,大多數人都是靠自己自學成才。本文主要介紹自己從事web開發以來(從大二至今)看過的書籍和自己的成長過程,目的是給想了解JavaScript或者是剛...
摘要:推薦高性能網站建設指南高性能網站建設進階指南理由在讀完前幾本書之后我們對前端的性能和自己的代碼的效率已經達到相當的高度了,然后我們在接觸一些前端工程師的一些精髓。 WEB前端研發工程師,在國內算是一個朝陽職業,這個領域沒有學校的正規教育,大多數人都是靠自己自學成才。本文主要介紹自己從事web開發以來(從大二至今)看過的書籍和自己的成長過程,目的是給想了解JavaScript或者是剛...
摘要:如果你問一個年輕的前端開發人員,你在今后的年內如何提升自己的能力他可能會說我現在對前端比較熟悉,但我想深入了解,另外現在發展的很快我也想看一下。再舉一個例子,我會留意身邊的程序員所用的鍵盤。只有少部分的程序員會買高端的靜電容鍵盤,比如。 如果你問一個年輕的前端開發人員,你在今后的 3 年內如何提升自己的能力?他可能會說我現在對 Web 前端比較熟悉,但我想深入了解 AngularJS,...
閱讀 3384·2023-04-26 01:46
閱讀 2906·2023-04-25 20:55
閱讀 5471·2021-09-22 14:57
閱讀 2974·2021-08-27 16:23
閱讀 1712·2019-08-30 14:02
閱讀 2063·2019-08-26 13:44
閱讀 644·2019-08-26 12:08
閱讀 2951·2019-08-26 11:47