js重要概念

原型和原型链

js中所有函数都有一个原型对象属性prototype,所有函数默认原型式object的实例,
原型链是原型组成的链,对象的_proto_是他的原型,原型的_proto_也是一个原型,这样依次向上查找,找到object为原型的时候这条链结束
实现原型链的基本模式是,让当前构造函数的原型对象等于另一个构造函数的实例。
文章链接
图片

在js中万物皆对象,对象又分为两种:普通对象(Object)和函数对象(Function)。

任何对象都具有隐式原型属性(proto),只有函数对象有显式原型属性(prototype)。

原型链:原型链是针对原型对象的,在查找实例属性时,现在实例中查找,如果没有找到,再到obj.proto(=f1.prototype)原型对象,再到f1.prototype.proto(=f2.prototype),依次向上查找。


图片说明

作用域链:作用域链是针对变量的,现在自己的变量范围内查找,找不到,再沿着作用域往上查找。

构造函数、原型对象和实例之间的联系(图示)

图片说明

构造函数、原型对象、子类构造函数、子类原型对象和子类实例之间的联系(图示)

图片说明


继承

参考链接
###父类(继承谁,提供继承属性)

function  Person(name){//给构造函数添加参数
    this.name=name;
    this.sum=function () {
        alert(this.name)
    }
}
Person.prototype.age=10;//给构造函数添加原型属性
  1. 原型链继承

  2. 借用构造函数继承

  3. 组合继承(原型链+构造函数)

  4. 原型式继承

  5. 寄生式继承

  6. 寄生组合式继承(常用)

全部评论

相关推荐

05-29 22:11
门头沟学院 Java
Elastic90:抛开学历造假不谈,这公司的招聘需求也挺怪的,Java开发还要求你有图文识别、移动端开发和c++的经验,有点逆天了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务