javascript對象建立

來源:互聯網
上載者:User

標籤:一個   logs   ons   foo   config   操作符   屬性   ring   center   

 

一個js對象中有 [[proto]] [[class]]  [[extensible]] 三個對象標籤 ,在對象的屬性上有 writable ,enumerable,configurable,value,get/set 五個屬性標籤

 

 [[proto]] 對象的原型
 [[class]]  對象所屬的類型
[[extensible]] 是否可以增加新的屬性
writable  對象的屬性是否可寫
enumerable 對象的屬性是否可以枚舉
configurable 對象的屬性是否可配置
value 屬性的值
get/set get set方法


 

 對象的建立

 

字面量建立對象

 

var obj = {};obj.x = 1;obj.y = 2; 


 

建構函式new建立對象

 

function foo(){}foo.prototype.z = 3;var obj = new foo();obj.x = 4;console.info(obj.z); //out:3   obj對象的[[proto]] 會指向建構函式的prototype對象,在foo.prototype對象上存在z屬性,所有能訪問到z屬性的值console.info(obj.x); //out:4‘z‘ in obj  //trueobj.hasOwnProperty(‘z‘);  //false

 

 in 操作符,可以遍曆對象的屬性,但它不保證順序,同時會遍曆對象原型鏈上的屬性。如果只需要遍曆對象本身的屬性,使用hasOwnProperty();

function fun(){}fun.prototype.z = 3;var obj = new fun();obj.x = 5;obj.u = 9;for(i in obj){   console.info(i);  //x u z}  for(i in obj){   if(obj.hasOwnProperty(i)){       console.info(i);     //x u     }}
 Object.create()建立對象
var obj = Object.create({x : 1});obj.x // 1obj.hasOwnProperty(‘x‘);// false  說明 obj的原型 執行了{x:1}

 

 

var obj = Object.create(null);obj.toString // undefined   如果為null 它的原型會指向null

 

javascript對象建立

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.