日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

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

编程问答

ECMAScript 5 新增 Object 接口

發布時間:2023/12/31 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 接口的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。