为什么我从未在我编辑的JavaScript代码中看到prototype属性?

时间:2010-06-03 16:50:23

标签: javascript

为什么我从来没有在我编辑的JavaScript代码中看到the prototype property,从我读过的书籍和文档中看,它似乎是该语言的基石。

5 个答案:

答案 0 :(得分:1)

也许是因为大多数javascript程序员从不关心学习语言的基础知识,而且因为松散的方法允许有很多不同的方法来解决问题。

答案 1 :(得分:0)

prototype属性仅存在于Function个对象上。其他对象没有prototype属性。它指的是在用作构造函数时用作该函数创建的任何对象的原型的对象。

function Thing() {
}

Thing.prototype = {
    foo: "bar"
};

var t = new Thing();
window.alert(t.foo);

答案 2 :(得分:0)

我不知道一个例子是否是一个解决方案,但这是一个使用原型的例子。

必须定义Group.prototype ['somethin'],但在创建新组时存在Group.prototype。

function Group(ob){
    if(!ob || typeof ob!= 'object') ob= {};
    for(var p in ob){
        if(ob.hasOwnProperty(p)) this[p]= ob[p];
    }
}
Group.prototype.merge= function(ob, force){
    var tem, p, force= force!== false;
    if(ob && ob.hasOwnProperty){
        for(p in ob){
            if(ob.hasOwnProperty(p)){
                tem= this[p];
                if(tem=== undefined || force) this[p]= ob[p];
            }
        }
    }
    return this;
}
Group.prototype.assignTo= function(ob, ob2, force){
    return this.merge.call(ob, ob2, force);
}

答案 3 :(得分:0)

在我完成的工作中,prototype通常会被放弃,转而使用构造函数中定义的闭包方法,因此我可以在我的javascript类中拥有私有成员。我知道prototype在设置继承类时可能有用,但我从未需要达到这种复杂程度。

答案 4 :(得分:-2)

您使用的是什么IDE?试试visual web developer express