首页 > 编程 > JavaScript > 正文

JavaScript构造函数,原型对象理解

2019-11-08 00:02:08
字体:
来源:转载
供稿:网友
构造函数名首字母要大写;使用new操作符来调用构造函数,并返回对象的实例;构造函数内部使用this指代对象的实例;原型对象可以理解为java中的父类;构造函数的缺点:所有实例对象都可以继承构造函数中定义的属性和方法,但是却不能共享,比如:为了解决各个实例对象之间的方法或属性共享,js提供了PRototype属性对于构造函数而言,prototype是构造函数的一个属性,对于对象实例来说,prototype是对象实例的原型对象;所以prototype既是属性又是原型对象;原型对象的属性不是对象实例的属性。对象实例的属性是构造函数的属性;通过原型对象,可以在多个对象实例之间共享属性和方法;原型链:读取对象的某个属性时,JavaScript引擎会优先去寻找实例对象自身的属性,如果找不到就到它的原型去找,还是找不到就到它的原型的原型去找,以此类推,直到到达最顶端的Object.prototype还是找不到则返回undefined;如果对象自身和它的原型都定义了相同名称的属性,那么优先读取对象自身的属性,类似java中的覆盖一级级在原型链中寻找某个属性对性能是有一定的影响的,如果寻找一个不存在的属性,将会遍历整个原型链;constructor属性:constructor是prototype的一个属性,默认指向prototype对象所在的构造函数;注意:prototype是构造函数的属性,而constructor是prototype的属性,constructor又指向了prototype所在的构造函数;由于constructor是定义在原型对象prototype上的,所以constructor可以被所有实例对象继承;一个函数或方法,都有prototype属性,prototype下面都有constructor属性,而且constructor属性值都指向了该函数或方法;个人理解,有不对的地方,欢迎大家指出,共同学习!
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表