function man(){
this.name=1}var f=new man()
man.prototype.name=2
alert(f.name)为什么修改不起啊?必须把name修在后面用man.prototype.name=1才行?如果是类里面的怎么修改?

解决方案 »

  1.   

    一个是对象自身的属性,一个是对象原型的属性,当一个对象自身没有这个属性的时候才会到原型链上查找,再找不到貌似就是undefined了(高手指正。。)
      

  2.   

    function man(){
    this.name=1} 
    这个name是man的属性man.prototype.name=2 这个是修改的原型的属性var f=new man()
    man.name=2
    alert(f.name) over
      

  3.   

    var f=new man() 
    man.prototype.name=2 
    你吧这两句换一下位置试试
      

  4.   

    man.name 覆盖了了 man.prototype.namefunction man(){ 
    this.name=1 } var f=new man() 
    man.prototype.name=2 
    delete f.name;
    alert(f.name) 
      

  5.   

    就素酱紫的。构造函数中的属性在实例化的时候都将会变成对象私有,参见 new的原理原型共享,应该这样:<script type="text/javascript">
    function man(){}
    man.prototype.name = 1;var f1 = new man();
    alert(f1.name);var f2=new man()
    man.prototype.name = 2;
    alert(f2.name);alert(f1.name);
    </script>
      

  6.   

    看样子只能通过这种原型才能在后期动态修改
    function man(){}
    man.prototype.name = 1;
      

  7.   

    搞定了,必须用动态原型方法
    function car (sColor,iNumbers){ // 构造函数只用来定义对象的所有非函数属性,即对象的属性 
    this.color = sColor; 
    this.numbers = iNumbers; 
    this.dirvers = new Array ("Jone","Leon"); 
    alert(car.prototype.showColor)
    if(typeof car._initialized=="undefined"){ //此时此刻,这里的car._initialized成立,继续执行下面的函数 
    car.prototype.showColor = function (){ 


    car._initialized = true; // 
    }
    var car1 = new car ("red"); 
    var car2 = new car ("yellow"); 
    var car3 = new car ("yellow"); 
    car1.showColor(); 
    car2.showColor(); 
    car3.showColor();