繁体   English   中英

javascript对象原型属性访问

[英]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以任意顺序遍历对象的可枚举属性。 对于每个不同的属性,可以执行语句。

诸如constructortoStringhasOwnProperty都是不可枚举的属性,它们不会在for..in中列出

对象的某些属性(例如“构造函数”)被隐藏或更精确地不可枚举,因此无法使用for in循环枚举此类对象,在ECMA5中,我们有一种可以获取所有属性的方法

Object.getOwnPropertyNames(Maker.prototype)

这是给你的

["constructor"]

这是详细的说明: 如何在Javascript中显示对象的所有方法?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM