ECMAScript 5 新增 Object 接口
生活随笔
收集整理的这篇文章主要介绍了
ECMAScript 5 新增 Object 接口
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
| Object | getPrototypeOf | 返回对象的原型 |
| Object | getOwnPropertyDescriptor | 返回对象自有属性的属性描述符 |
| Object | getOwnPropertyNames | 返回一个数组,包括对象所有自有属性名称集合(包括不可枚举的属性) |
| Object | create | 创建一个拥有置顶原型和若干个指定属性的对象 |
| Object | defineProperty | 给对象定义一个新属性,或者修改已有的属性,并返回 |
| Object | defineProperties | 在一个对象上添加或修改一个或者多个自有属性,并返回该对象 |
| Object | seal | 锁定对象。阻止修改现有属性的特性,并阻止添加新属性。但是可以修改已有属性的值。 |
| Object | freeze | 冻结对象,阻止对对象的一切操作。冻结对象将永远不可变。 |
| Object | preventExtensions | 让一个对象变的不可扩展,也就是永远不能再添加新的属性。 |
| Object | isSealed | 判断对象是否被锁定 |
| Object | isFrozen | 判断对象是否被冻结 |
| Object | isExtensible | 判断对象是否可以被扩展 |
| Object | keys | 返回一个由给定对象的所有可枚举自身属性的属性名组成的数组 |
这些新增的好处之一是对象的属性有了更多控制,例如哪些是允许被修改的,哪些是可以枚举的,哪些是可以删除的等。这个的实现通过程序访问对象的属性描述符(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 接口的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 王者荣耀亲密度道具怎么获得
- 下一篇: haproxy代理hive