欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

ECMAScript 5 新增 Object 接口

发布时间:2023/12/31 编程问答 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 ECMAScript 5 新增 Object 接口 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

 

对象构造器说明
ObjectgetPrototypeOf返回对象的原型
ObjectgetOwnPropertyDescriptor返回对象自有属性的属性描述符
ObjectgetOwnPropertyNames返回一个数组,包括对象所有自有属性名称集合(包括不可枚举的属性)
Objectcreate创建一个拥有置顶原型和若干个指定属性的对象
ObjectdefineProperty给对象定义一个新属性,或者修改已有的属性,并返回
ObjectdefineProperties在一个对象上添加或修改一个或者多个自有属性,并返回该对象
Objectseal锁定对象。阻止修改现有属性的特性,并阻止添加新属性。但是可以修改已有属性的值。
Objectfreeze冻结对象,阻止对对象的一切操作。冻结对象将永远不可变。
ObjectpreventExtensions让一个对象变的不可扩展,也就是永远不能再添加新的属性。
ObjectisSealed判断对象是否被锁定
ObjectisFrozen判断对象是否被冻结
ObjectisExtensible判断对象是否可以被扩展
Objectkeys返回一个由给定对象的所有可枚举自身属性的属性名组成的数组

这些新增的好处之一是对象的属性有了更多控制,例如哪些是允许被修改的,哪些是可以枚举的,哪些是可以删除的等。这个的实现通过程序访问对象的属性描述符(property descriptors). 例如:

var cat = {};Object.defineProperty(cat, "name", {value: "Maru",writable: false,enumerable: true,configurable: false });Object.defineProperty(cat, "skill", {value: "exploring boxes",writable: true,enumerable: true,configurable: true });

1.getPrototypeOf 例子

2.Object.create(proto [, propertiesObject ]) 是E5中提出的一种新的对象创建方式,第一个参数是要继承的原型,如果不是一个子函数,可以传一个null,第二个参数是对象的属性描述符,这个参数是可选的。

例子1

function Car (desc) {this.desc = desc;this.color = "red"; }Car.prototype = {getInfo: function() {return 'A ' + this.color + ' ' + this.desc + '.';} }; //instantiate object using the constructor function var car = Object.create(Car.prototype); car.color = "blue"; alert(car.getInfo());

例子2

var a = {a: 1}; // a ---> Object.prototype ---> nullvar b = Object.create(a); // b ---> a ---> Object.prototype ---> null console.log(b.a); // 1 (继承而来)var c = Object.create(b); // c ---> b ---> a ---> Object.prototype ---> nullvar d = Object.create(null); // d ---> null console.log(d.hasOwnProperty);

new和Object.create()的区别在哪:

function Constructor(){} o = new Constructor(); // 上面的一句就相当于: o = Object.create(Constructor.prototype);

 

转载于:https://www.cnblogs.com/myzy/p/5909598.html

总结

以上是生活随笔为你收集整理的ECMAScript 5 新增 Object 接口的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。