天天看点

《JavaScript启示录》——1.17 动态属性支持易变对象

本节书摘来自异步社区《javascript启示录》一书中的第1章,第1.17节,作者:【美】cody lindley著,更多章节内容可以访问云栖社区“异步社区”公众号查看

复杂对象是由动态属性构成的。这使得用户自定义对象和大多数原生对象可以产生突变。这意味着javascript中的大多数对象都可以随时更新或更改。正因为如此,可以通过增加原生对象,来改变javascript本身的原生预配置特性。然而,我并不是建议大家这样做,事实上,我认为不应该这样做,但我们不能掩盖这些用法的有用之处。

也就是说,我们可以在原生构造函数上存储属性,并在原型对象上,向原生对象额外添加新方法。

如下代码,改变了string()构造函数和string.prototype。

希望大家能够明白,javascript中的对象是动态的。这使得javascript中的对象是可以改变的。从本质上讲,整个javascript语言都可以变为自定义版本(例如trimit方法)。再次说明,我不推荐这种做法,我只是指出它是javascript中对象特性的一部分。

注意

如果更改了javascript的原生内部运作机制,你可能会获得一个自定义版本的javascript来进行程序处理。但一定要谨慎,因为大多数人会认为javascript不管在什么时候使用,都是相同的。

继续阅读