猿问

一个依旧没懂的js问题

function phone(name){
            //this.name = "mi";
            this.name = name;
            this.price = function(){
                console.log("2000");
            }
        }
        phone.prototype = {
            name:"meizu",
            price:function(){
                console.log("2500");
            }
        }
        var buy = new phone('mi');
        console.log(buy.name);
        buy.price();

既然先在构造器上查找,那buy.__proto__ == phone.prototype有什么用?

西兰花伟大炮
浏览 1060回答 1
1回答

千秋此意

怎么会先从构造器上查找呢,访问一个对象实例的属性会先从实例自身的属性开始查找,如果没有再通过__proto__访问其原型对象(即其构造函数的原型属性所指向的对象)进行查找,还没有就继续访问其原型对象的原型,顺着原形链一路找到Object.prototype如果还没有才返回undefined
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答