修改原型对象的问题

            function Person(name,age){
                this.name=name;
                this.age=age;
                this.getName=function(){
                    console.log(this.name);
                }
            }
            Person.prototype.sayAge="hehe";
            var p = new Person("lucy","21");
            console.log(1,p instanceof Person);
            console.log(2,p.constructor === Person);
            console.log(3,p.hasOwnProperty('getAge'),p.sayAge);
            Person.prototype={
                getAge:function(){
                    alert(this.age);
                }
            }
            var d = new Person("lucy","21");
            console.log(1,d instanceof Person);
            console.log(2,d.constructor === Person);
            console.log(3,d.hasOwnProperty('getAge'),d.sayAge);
            
            
            
            如上,不知哪位能给出图形描述此题中原型链指向的情况~~~
阅读 2.5k
2 个回答

图片描述

凑合着看吧,图里还有 Person.prototype的指向没画出来

具体图其实可以参考《javascript高级程序》 面向对象的程序设计章节。

//修订1.

对象p,d都并不包含constructor属性

function Person(){};

var person = new Person();
person.hasOwnProperty('constructor'); //false

//work in chrome and firefox.
person.__proto__.hasOwnProperty('constructor'); //true
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题