请问结果为什么是Prepare move for person [jim]

解决方案 »

  1.   

    因为prototype 并不会改变原来的对象。  
      

  2.   

    你可以用prototype 给element对象添加方法和属性 ,但是element 并不会因为你添加了属性就改变了,  下次你要用你添加的属性还的用prototype 添加才能改变element。
      

  3.   

    var person = new Person("Jim");
    Person对象自带有move方法,不会再向原型链查找
      

  4.   

    请问如果我要改写Person中的move()方法应该怎么办呢
      

  5.   


    如果将Person类中的move()方法去掉,就显示Ready move for person [jim] ,那证明prototype是可以改变原有对象的方法和属性(相当于增加),那为什么不能重写原有的方法呢,我的疑问也在此。
      

  6.   

    请问如果我要改写Person中的move()方法应该怎么办呢
    改写就写个新的类继承Person不就好了么
      

  7.   

    js下面 对于对象的属性的访问比如读访问 move
    var a = xxx.move  会先看对象本身有没有move对象  没有则从原型链上查找move写访问 movexxx.move = move  则直接覆盖对象本身的 move属性 如果不存在 则 对象下增加一个move属性
    注意 上面是不会访问 prototype的如果要改写 原型那么
    直接:  xxx. prototype.move = ....
      

  8.   

    请问如果我要改写Person中的move()方法应该怎么办呢
    改写就写个新的类继承Person不就好了么如果是写新类然后继承,那就用新类new一个对象了,那就不是用的Person类了,我现在还是想继续用Person类。其实我最想弄清楚的就是原型链上的move()方法和类的成员方法move()是什么关系
      

  9.   


    你说的写move是这样吧 var person = new Person("Jim");
        person.move = function () { alert("Finish move for person [" + this.name + "]") };
        person.move();试了确实能修改move方法,也就是说原型链是当类本身没有该方法的时候才会使用原型链上的方法,那想问下把方法放在原型链上和直接作为类的成员方法各自的优缺点是什么呢?
      

  10.   


    就是 人类和我的区别
    假定我继承与人类
    人类有思考这个功能的 所以我也能思考
    我有一个名字 但是我的名字并不是人类的名字 (人类不需要名字  我需要名字)only you  放在自己下面
    all  放在类下面