欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

什么是原型对象与原型链

程序员文章站 2024-03-06 16:47:56
...

要了解原型对象,先了解对象

数据类型
undefined、null、boolean、number、string、object
引用类型String,Number,Boolean,Object,Function,Array,Data,RegExp,Error

我们可以使用九中引用类型来创建对象实例

原型对象

创建三个对象

        var str = new String('abc')
        console.log(str)

        var num = new Number(123)

        console.log(num)

        var obj = new Object()
        obj.name = "张三"

        console.log(obj)

什么是原型对象与原型链每一个实例对象都有自己的__proto__属性指向创建自己的原型对象。
什么是原型对象与原型链每个原型对象也有着自己的原型对象——object,object是所以对象的最终原型。
除了__proto__属性外还有个prototype属性,这个也是用来指向原型的,不过是给创建对象的引用类型使用的,指向自己

console.log(str.__proto__ === String.prototype)//true

而原型对象也可以使用一个叫做constructor属性找到创建自己孩子的对象

console.log(str.constructor === String)//true

js new一个对象的过程

  function mon(name) {
            this.name = name
        }
        var son = new mon()

1、创建一个新对象:son
2、新对象会执行一个[[prototype]]连接

son.__proto__=mon.prototype

3、对象实例和对象的this会绑定起来
4、执行对象中的代码

 this.name = name

5、如果函数没有返回值,就是返回新对象

什么是原型链


        function supermarket() {

        }
        supermarket.prototype.product = "salks"

        console.log(supermarket.prototype)

        function shop() {}

        shop.prototype = new supermarket()

        console.log(shop.prototype)

        var person = new shop()

        console.log(person.product)

什么是原型对象与原型链什么是原型对象与原型链说明:我并没有在shop中定义product,按理说它应该为空,但是我让shop的原型对象指向supermarket的实例,它就会去supermarket中寻找有没有product属性。
作用:我们可以利用这特性实现类的继承

相关标签: 原理