JavaScript中的原型、原型对象、原型链是什么关系?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1947个文字,预计阅读时间需要8分钟。
理解原型+我们创建的每个函数都有一个prototype属性,这个属性是一个指向对象的指针,指向一个对象,这个对象包含了可以由特定类型的所有实例共享的属性和方法。例如,下面是一个例子:
理解原型
我们创建的每一个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法。看如下例子:
function Person(){ } Person.prototype.name = 'ccc' Person.prototype.age = 18 Person.prototype.sayName = function (){ console.log(this.name); } var person1 = new Person() person1.sayName() // --> ccc var person2 = new Person() person2.sayName() // --> ccc console.log(person1.sayName === person2.sayName) // --> true
理解原型对象
根据上面代码,看下图:
需要理解三点:
- 我们只要创建了一个新的函数,就会根据一组特定的规则为该函数创建一个prototype属性,指向函数的原型对象。
本文共计1947个文字,预计阅读时间需要8分钟。
理解原型+我们创建的每个函数都有一个prototype属性,这个属性是一个指向对象的指针,指向一个对象,这个对象包含了可以由特定类型的所有实例共享的属性和方法。例如,下面是一个例子:
理解原型
我们创建的每一个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法。看如下例子:
function Person(){ } Person.prototype.name = 'ccc' Person.prototype.age = 18 Person.prototype.sayName = function (){ console.log(this.name); } var person1 = new Person() person1.sayName() // --> ccc var person2 = new Person() person2.sayName() // --> ccc console.log(person1.sayName === person2.sayName) // --> true
理解原型对象
根据上面代码,看下图:
需要理解三点:
- 我们只要创建了一个新的函数,就会根据一组特定的规则为该函数创建一个prototype属性,指向函数的原型对象。

