数码资讯
Javascript中对象的可扩展属性介绍
在Javascript中,对象的扩展属性,用于指示是否一个新的属性可以被动态地添加到对象。在ECMAscript 3标准,所有的对象都是可扩展的,ECMAscript 5标准,所有的对象仍然是可扩展的默认的,但可以改变设置。 发现如果一个对象是可扩展的,你可以用object.isextensible
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
在Javascript中,对象的扩展属性,用于指示是否一个新的属性可以被动态地添加到对象。在ECMAscript 3标准,所有的对象都是可扩展的,ECMAscript 5标准,所有的对象仍然是可扩展的默认的,但可以改变设置。
发现如果一个对象是可扩展的,你可以用object.isextensible()语句:
复制代码代码如下所示:
var:x:1 };
console.log(object.isextensible(O)); / /真的
要使一个物体不可扩展的,你可以用object.preventextensions()语句:
复制代码代码如下所示:
object.preventextensions(O)
console.log(object.isextensible(O)); / /假
值得注意的是,因为没有object.preventextensions()反操作语句,一旦对象是不可扩展的,就没有办法把它带回扩展了。
该object.preventextensions范围()语句是对象本身,和原型对象不受影响。如果一个对象被设置为非可扩展的特性,还可以动态地添加到原型对象,而动态添加的属性也可以被继承的对象。
Object.seal()和Object.freeze()
object.preventextensions()可以防止在对象的新属性的动态增加。除了这个操作,有两个更严格的行动来保护Javascript对象:Object.seal()和Object.freeze()。
Object.seal的角色是()来设置所有对象的属性为false,可配置的属性的基础上,对object.preventextensions()。与object.preventextensions()Object.seal()操作,不能反向操作,所以一旦对象是密封的,它不能够恢复状态,Javascript,object.issealed()可以用来查询一个对象是否是密封的。
Object.freeze的角色是()来设置所有对象本身对object.seal基础为只读属性()Like Object.seal()和object.preventextensions()操作,Object.freeze()没有反向操作,所以一旦对象被冻结,将无法恢复状态。在Javascript,Object.isFrozen()可以用来查询一个对象是否被冻结。
复制代码代码如下所示:
console.log(object.issealed(O)); / /假
Object.seal(O);
console.log(object.issealed(O)); / /真的
console.log(Object.isFrozen(O)); / /假
Object.freeze(O);
console.log(Object.isFrozen(O)); / /真的
无论是Object.preventExtensions()、Object.seal()和Object.freeze(),活动的范围是所有的对象,和对象的原型对象将不受影响。
发现如果一个对象是可扩展的,你可以用object.isextensible()语句:
复制代码代码如下所示:
var:x:1 };
console.log(object.isextensible(O)); / /真的
要使一个物体不可扩展的,你可以用object.preventextensions()语句:
复制代码代码如下所示:
object.preventextensions(O)
console.log(object.isextensible(O)); / /假
值得注意的是,因为没有object.preventextensions()反操作语句,一旦对象是不可扩展的,就没有办法把它带回扩展了。
该object.preventextensions范围()语句是对象本身,和原型对象不受影响。如果一个对象被设置为非可扩展的特性,还可以动态地添加到原型对象,而动态添加的属性也可以被继承的对象。
Object.seal()和Object.freeze()
object.preventextensions()可以防止在对象的新属性的动态增加。除了这个操作,有两个更严格的行动来保护Javascript对象:Object.seal()和Object.freeze()。
Object.seal的角色是()来设置所有对象的属性为false,可配置的属性的基础上,对object.preventextensions()。与object.preventextensions()Object.seal()操作,不能反向操作,所以一旦对象是密封的,它不能够恢复状态,Javascript,object.issealed()可以用来查询一个对象是否是密封的。
Object.freeze的角色是()来设置所有对象本身对object.seal基础为只读属性()Like Object.seal()和object.preventextensions()操作,Object.freeze()没有反向操作,所以一旦对象被冻结,将无法恢复状态。在Javascript,Object.isFrozen()可以用来查询一个对象是否被冻结。
复制代码代码如下所示:
console.log(object.issealed(O)); / /假
Object.seal(O);
console.log(object.issealed(O)); / /真的
console.log(Object.isFrozen(O)); / /假
Object.freeze(O);
console.log(Object.isFrozen(O)); / /真的
无论是Object.preventExtensions()、Object.seal()和Object.freeze(),活动的范围是所有的对象,和对象的原型对象将不受影响。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。