构造函数,原型对象和实例对象的区别与联系

一. 构造函数

  • 用于创建对象的函数,一般首字母大写区别与一般函数。
  • 构造函数自带prototype属性,函数的prototype属性是个指针,该指针指向原型对象

二. 原型对象

  • 有constructor属性,这个指针指向相关联的构造函数

三. 实例对象

  • 调用构造函数new出来的对象,每个对象都有_proto_属性
  • 该属性指向构造函数的原型对象。

我们看一个程序,理解一下。

    <script>
        function Person(name,age){
            this.name = name;
            this.age = age;
        }
        var obj1 = new Person("张三",18);
        var obj2 = new Person("王五",20);
        console.log(obj1);
        console.log(obj2);
        Person.prototype.area = "北京";
        console.log(Person.prototype); 
    </script>

在这里插入图片描述
其中Person( ) 这个函数为构造函数。而通过new Peron( )之后的obj1和obj2则为实例对象。构造函数的prototype指向原型对象。原型对象有个constructor属性指向构造函数。而实例对象中有个_proto_的属性指向原型对象。

总结:

  • 每个构造函数都有一个指向原型对象的指针 prototype
  • 原型对象上有指向构造函数的指针 constructor
  • 实例对象包含着指向原型对象的内部指针_proto_
发布了24 篇原创文章 · 获赞 26 · 访问量 2718

猜你喜欢

转载自blog.csdn.net/apple_2021/article/details/101432245