原型与原型链、闭包

1.原型链

  • 概念

1.每个构造函数(类)都有一个显示原型prototype

2.每个实例(对象)都有一个隐式原型__proto__

3.对象的隐式原型__proto__等于其构造函数的显示原型prototype

4.当查找对象的属性或方式现在自身上找不到则沿着原型(__proto__.__proto__)向上查找

5.我们把原型链形式的链条关系成为原型链

  • 作用 

1.实现了js的继承

2.可以给所有的类的实例添加公用方法和属性

2.函数类

function Animal(){}
var a1= new Animal() 

  1. 通过new执行的函数称为构造函数(建议大写)可以成为类 函数 
  2. 通过new生成对象 称为类的实例(实例对象)
  3. 构造函数中的this只想对应的实例

3.闭包

     1.function outer(){

var a =100;
return function(){
a++:
        console.log(a)
}
}
var inner = ();
inner() 

     2.function outer(fn){

fn():函数作为参数被传入

  • 特点 

函数嵌套函数函数作为返回值被返回 函数作为参数被传入

  • 作用 

创建局部作用域;在函数外部访问函数内部的局部变量;封装组件与插件

  • 缺点 

闭包中的自由变量不会自动销毁 会常驻内存 使用不当容易造成泄漏

  • 考点 

比保重的自由变量(在该作用域没有定义就使用变量)在函数定义时候确定的不是函数执行时候确定的 

4.继承 

  •  class类可以用extends关键字实现继承
  • 函数类继承     
  1. 继承构造函数
    function Student(name,age,no){
    Animal.cal(this,name,age)
    }
  2. 继承原型
    Student.prototype = Object.create(Animal.prototype)
  3.  修正构造函数
    Student.prototype.constructor = Stuent;
    //自定义Student 扩展方法
    Student.prototype.study = function(){}

5.this冒充 

  • add.call(obj,3,5)
    执行add函数用obj冒充this 3和5是参数 
  • add.apply(obj,[3,5])
    执行add函数 用obj冒充this 传参数用数组

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值