當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
深入理解javascript原型和闭包(7)——原型的灵活性
生活随笔
收集整理的這篇文章主要介紹了
深入理解javascript原型和闭包(7)——原型的灵活性
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在Java和C#中,你可以簡單的理解class是一個模子,對象就是被這個模子壓出來的一批一批月餅(中秋節剛過完)。壓個啥樣,就得是個啥樣,不能隨便動,動一動就壞了。
而在javascript中,就沒有模子了,月餅被換成了面團,你可以捏成自己想要的樣子。
首先,對象屬性可以隨時改動。
對象或者函數,剛開始new出來之后,可能啥屬性都沒有。但是你可以這會兒加一個,過一會兒在加兩個,非常靈活。
在jQuery的源碼中,對象被創建時什么屬性都沒有,都是代碼一步一步執行時,一個一個加上的。
其次,如果繼承的方法不合適,可以做出修改。
var obj = {a: 10, b: 20}; console.log(obj.toString()); //[object Object] var arr = [1, 2, true]; console.log(arr.toString()); //1,2,true如上圖,Object和Array的toString()方法不一樣??隙ㄊ茿rray.prototype.toString()方法做了修改。
同理,我也可以自定義一個函數,并自己去修改prototype.toString()方法。
最后,如果感覺當前缺少你要用的方法,可以自己去創建。
例如在json2.js源碼中,為Date、String、Number、Boolean方法添加一個toJSON的屬性。
如果你要添加內置方法的原型屬性,最好做一步判斷,如果該屬性不存在,則添加。如果本來就存在,就沒必要再添加了。
總結
以上是生活随笔為你收集整理的深入理解javascript原型和闭包(7)——原型的灵活性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深入理解javascript原型和闭包(
- 下一篇: 深入理解javascript原型和闭包(