前端随心记---------Javascript系列(第十七节.闭包)

闭包

原型
构造函数的this指向实例对象
构造函数function Human(){}
实例对象var h1=new Human( );

实例对象的_proto_指向其构造函数的prototype(原型),原型上的内容是所有对象共享的
函数中this的指向在调用的瞬间决定

document.body.onclick=function(){
事件函数的this指向事件源
}

作为全局的普通函数调用时,函数中的this指的是widow
例如 function Human(){ } 普通函数调用Human()
构造函数中的this指向实例化对象
例如 var h1=new Human( )

函数调用方法
bind apply call

 

原型链
实例对象上属性搜索规则
1 首先在实例对象上找
2 再去构造函数的原型上找
3 再去原型对象的构造函数的原型上找
4 再去原型对象的原型对象的原型对象上找
原型链就是实例对象和原型对象组成的一个链条,这里的连接箭头就是__proto__


通过原型链继承,缺点:
1 继承的构造函数中的引用类型对于所有的实例都是共享的
2 没有办法在不影响所实例的情况下给要继承的构造函数传参
借用构造函数继承缺点:无法继承原型链上的方法

posted @ 2019-10-17 17:18  胡炖鱼  阅读(96)  评论(0编辑  收藏  举报