美文网首页
原型与原型链

原型与原型链

作者: Carlmac | 来源:发表于2018-11-30 00:21 被阅读0次

    关于原型和原型链,只要牢记一件事就很容易理解:

    实例化对象的 __proto__ 指向构造函数的 prototype

    配合下面的例子和图示食用:

    // 这是构造函数
    function Person(nick, age) {
        this.nick = nick;
        this.age = age;
    }
    
    // 在构造函数的prototype上定义方法
    Person.prototype.sayName = function() {
        console.log(this.nick);
    }
    
    // 创建两个实例
    var p1 = new Person('Byron', 20);
    var p2 = new Person('Casper', 25);
    
    // 以下方法没有在实例上声明,但仍然可以正确调用
    p1.sayName();  // 'Byron'
    p2.sayName();  // 'Casper'
    
    prototype.png

    再记住另一句话:

    因为JS中一切都是对象,所以最终所有对象的源头都指向Object.prototype

    这就解释了为什么很多变量都有公用的方法(如:toString()valueOf())了。

    相关文章

      网友评论

          本文标题:原型与原型链

          本文链接:https://www.haomeiwen.com/subject/xgzqcqtx.html