代码之家  ›  专栏  ›  技术社区  ›  Dr. Frankenstein

为什么我从未在我编辑的javascript代码中看到原型属性?

  •  0
  • Dr. Frankenstein  · 技术社区  · 16 年前

    为什么我看不见 the prototype property 在我编辑的javascript代码中,从我读过的书籍和文档中,它似乎是语言的基石。

    5 回复  |  直到 16 年前
        1
  •  0
  •   lincolnk    16 年前

    在我所做的工作中, prototype 通常会放弃使用构造函数中定义的闭包方法,这样我就可以在JavaScript类中拥有私有成员。我知道 原型 在设置继承类时可能有一个目的,但我从来没有必要达到这种复杂程度。

        2
  •  1
  •   jishi    16 年前

    也许是因为大多数的javascript编码人员从不关心学习该语言的基础知识,并且因为松散的方法允许使用许多不同的方法来解决问题。

        3
  •  0
  •   Tim Down    16 年前

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

    function Thing() {
    }
    
    Thing.prototype = {
        foo: "bar"
    };
    
    var t = new Thing();
    window.alert(t.foo);
    
        4
  •  0
  •   kennebec    16 年前

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

    必须定义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);
    }
    
        5
  •  -2
  •   Bablo    16 年前

    您使用的是哪个IDE?尝试 visual web developer express