本節書摘來自異步社群《javascript啟示錄》一書中的第1章,第1.17節,作者:【美】cody lindley著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視
複雜對象是由動态屬性構成的。這使得使用者自定義對象和大多數原生對象可以産生突變。這意味着javascript中的大多數對象都可以随時更新或更改。正因為如此,可以通過增加原生對象,來改變javascript本身的原生預配置特性。然而,我并不是建議大家這樣做,事實上,我認為不應該這樣做,但我們不能掩蓋這些用法的有用之處。
也就是說,我們可以在原生構造函數上存儲屬性,并在原型對象上,向原生對象額外添加新方法。
如下代碼,改變了string()構造函數和string.prototype。
希望大家能夠明白,javascript中的對象是動态的。這使得javascript中的對象是可以改變的。從本質上講,整個javascript語言都可以變為自定義版本(例如trimit方法)。再次說明,我不推薦這種做法,我隻是指出它是javascript中對象特性的一部分。
注意
如果更改了javascript的原生内部運作機制,你可能會獲得一個自定義版本的javascript來進行程式處理。但一定要謹慎,因為大多數人會認為javascript不管在什麼時候使用,都是相同的。