理解原型对象

1、构造函数
function Person(){
}

2、创建实例
const person = new Person();

3、原型对象
Person.prototype.name = 'ivy';
Person.prototype.will = 'become excellent';

4、三者关系
(1)、只要创建了一个新函数,就会根据一组特定的规则为该函数创建一个prototype属性。这个属性指向函数的原型对象;
(2)、所有原型对象都会获得constructor属性,这个属性指向prototype属性所在函数的指针,即构造函数
(3)、实例对象有属性proto指向原型对象(only firefox、safary、chrome support)

5、isPrototypeOf()
Person.prototype.isPrototypeOf(person) // return true

6、Object.getPrototypeOf()
该方法返回实例原型对象
Object.getPrototypeOf(person) === Person.prototype

7、hasOwnProperty()
该方法检测一个属性是否存在于实例中
person.hasOwnProperty('name')

8、原型与in操作符
检测属性是否存在于原型中或实例中

9、hasPrototypeProperty()
该方法检测属性是否存在于原型中

10、更简单的原型语法(对象字面量的形式)
Person.prototype = {
name: 'ivy',
age: '25',
will: 'become excellent'
}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 无论什么时候,只要创建了一个新函数,就会根据一组特定的规则为该函数创建一个prototype属性,这个属性指向函数...
    frankisbaby阅读 2,187评论 0 0
  •   面向对象(Object-Oriented,OO)的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意...
    霜天晓阅读 6,466评论 0 6
  • 原型对象和原型链在前端的工作中虽然不怎么显式的使用到,但是也会隐式的使用了,比如使用的jquery,vue等啦。在...
    Ming_Hu阅读 7,880评论 3 32
  • 面向对象(Object-Oriented,OO)的语言有一个标志,那就是它们都有类的慨念,而通过类可以创建任意多个...
    threetowns阅读 4,355评论 0 4
  • 近些日子发生太多的事情,让我不得不对“生命”二字重新进行审视。 暑假时,因为经历一些我所不能忍受之事,让我感到对现...
    糖心欧尼阅读 2,629评论 1 1

友情链接更多精彩内容