[英]javascript object prototype property access
这是我的问题的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
存在的那样,它至少应该淘汰构造函数。
从MDN
for..in以任意顺序遍历对象的可枚举属性。 对于每个不同的属性,可以执行语句。
诸如constructor
, toString
, hasOwnProperty
都是不可枚举的属性,它们不会在for..in中列出
对象的某些属性(例如“构造函数”)被隐藏或更精确地不可枚举,因此无法使用for in循环枚举此类对象,在ECMA5中,我们有一种可以获取所有属性的方法
Object.getOwnPropertyNames(Maker.prototype)
这是给你的
["constructor"]
这是详细的说明: 如何在Javascript中显示对象的所有方法?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.