2012-05-04 6 views
0

내 질문의 jsFiddle입니다 : 기본적으로 http://jsfiddle.net/4wyvv/1/여기에 프로토 타입 속성 액세스

:

//constructor function 
function Maker(){ 
    var str; 

    this.init = function(str){ 
     this.str = str; 
    }; 

    this.msg = function(){ 
     return this.str; 
    }; 
} 

//object from Maker 
var obj = new Maker(); 

obj.init("Hi my name is Dan"); 

//make sure everything exists and has worked as expected 
Audit.Log(obj.msg()); 
//look in Maker.prototype for the constructor property 
Audit.Log(obj.constructor); 
//look in Maker.prototype for the constructor property 
Audit.Log(Maker.prototype.constructor); 

//now look for all makers prototype properties, this should list atleast "constructor" 
for(var i in Maker.prototype){ 
    Audit.Log(i); 
} 

왜 foreach 루프 아무것도를 두지 않는가? Maker.prototype.constructor이 있다는 것을 보여 주므로 적어도 생성자를 내 보내야합니다.

답변

2

일부 속성에 표시되지 않습니다 같은 그들은 ECMA5,이 같은 루프의를 사용하여 열거되지 않도록 열거 우리는 당신이

을주는 모든 속성을 얻을 수있는 방법을

Object.getOwnPropertyNames(Maker.prototype) 

이되어 있습니다

["constructor"] 

여기에 자세한 설명이 나와 있습니다. How to display all methods of an object in Javascript?

2

임의의 순서로 오브젝트의 속성 위에 열거 반복하여 for..in을 MDN

가입일. 각각의 고유 한 특성에 대해 문은 이 될 수 있습니다.

constructor, toString, hasOwnProperty 비 열거 속성은 그들이 "생성자"숨겨진 이상의 정확한 비로 같은 개체의 for..in을