js學習筆記 028 物件的建立

2021-06-16 23:22:16 字數 1145 閱讀 8653

可以通過直接量,關鍵字new和ecmascript 5 object.create()函式來建立物件。

物件直接量:若干名值對組成的對映表,名值對中間用冒號分開,名值對之間用逗號分隔。整個對映錶用括號括起來。

通過new建立物件:關鍵字new後跟隨乙個函式呼叫。這裡的函式稱為建構函式,建構函式用以初始化乙個新建立的物件。js語言核心中的原始型別包含內建建構函式。如

var o = new object(); //建立乙個空物件和{}一樣

var a = new array();

var d = new date();

var r = new regexp(「js」);

原型:每乙個js物件(null除外)都和另乙個物件相關聯。「另乙個」物件就是我們熟知的原型,每個物件都從原型繼承屬性。

ecmascript5  object.create():需要兩個引數,第乙個是這個物件的原型,第二個(可選)用以對物件的屬性進一步描述。可通過傳入null來建立乙個沒有原型的新新物件。這種方法建立的物件不會繼承任何東西,甚至不包括基礎方法,如tostring()。也就是說,它將不能和」+」運算子一起正常工作。如果需要建立乙個普通物件,需要要傳入object.prototype

var o3 = object.create(object.prototype) ; // o3和{},new object()一樣。

如下:

function   inherit(p);  //定義乙個空建構函式

f.prototype = p;

return  new f(); }

目前只需要理解,返回的物件繼承了引數物件的屬性。它不能等同於object.create(),因為它傳入null無效。上面的函式還有乙個功能就是防止庫函式無意間修改那些不受你控制的物件

這的原理就是不是將物件直接作為引數傳入函式,而是將它的繼承物件傳入函式。當然函式讀取繼承物件屬性時,實際上是讀取的是繼承來的值。如果給繼承物件的屬性賦值,則這些屬性只會影響這個繼承物件自身,而不是原始物件

var  o = ;

library_function(inherit(o)); //防止對o的意外修改

JS學習四(物件)

1 var object1 物件字面量 object1 2 過new object 建立物件 var obj new object 建立乙個空物件,var arr new array 空陣列,var date new date 日期時間物件 var reg new regexp js 建立正則物件 ...

js 11物件的建立方式

for sx in p console name in p name屬性是否在p中,true console p.hasownproperty name p是否有name屬性 delete p.name 刪除p的name屬性,有些屬性是刪除不了的,如tostring writeable 屬性是否可寫...

R語言學習筆記1 物件的建立

r語言學習筆記1 物件的建立 楊旭東 2012 3 3 從昨天開始學習r語言,主要參考資料是網上下的 r軟體中文版教材 第一次接觸r是在 公司實習的時候,當時帶我的師傅給我看了他用r寫的simrank演算法,區區幾行 就把乙個複雜的演算法完整的實現了出來,當時就感到r的強大,但是迫於實習任務之重,也...