原型是什么,原型链的作用?看了这篇文章后你就知道了,原来是这么回事

原型的概念及使用

原型是什么:
每个函数和类都有一个显式原型prototype,里面存放一些公用的属性和方法,这些方法和属性,每一个实例都能访问到。而且每一个实例的对象都有一个隐式的原型__proto__,对象的隐式原型都指向构造这个对象的函数或类的显式原型。

看到这里可能会有点晕,请看下面代码演示

    function Person(name,age){
        this.name = name;
        this.age = age;
    }
    Person.prototype.say=function(){
        console.log(`我的名字叫做${this.name},我的年龄是${this.age}`)
    }
    var p1 = new Person("小张",18);
    var p2 = new Person("小红",16);
    
    p1.say();
    //我的名字叫做小张,我的年龄是18
    
	p2.say();
	//我的名字叫做小红,我的年龄是16

	console.log(p1);

这里有一个函数Person,上面有说过,每一个函数或类,都有显式原型prototype,然后在Person.protype里定义了一个say()方法。

接下来通过函数Person创建了p1和p2对象,我们定义的时候只给对象传了两个参数,并没有做其他操作,但是通过执行对象的say()方法,也是可以正常打印,正是对象调用了原型prototye里面的公用方法。

下面带大家看一下隐式原型__proto__里面的参数都是有哪些
在这里插入图片描述
原型链:
在对象使用属性或调用方法的时候,会优先在自身的属性中寻找,如果找不到就去隐式原型__proto__里面依次寻找,如果找不到就返回null,我们把__proto__prototype 的链条关系称为“原型链”。js对象就是通过原型链,实现属性的继承。

猜你喜欢

转载自blog.csdn.net/weixin_48179599/article/details/106881593