2021-03-20今日总结

1.闭包是什么?

    函数A里面包含一个函数B,函数B中引用函数A的变量,函数A的返回值是函数B。因此函数B 就是一个闭包。常用于循环中解决var定义函数的问题。

function A(){

    let a = 1;

        function    B(){

            console.log(a)

        }

    return B

}

2.this(call/apply)

call和apply都用于改变函数中this的指向,只是传参的方式不一样。除了第一个参数相同以外,call是传一个参数列表,而apply则是传一个参数数组。

bind也用于改变this的指向,只是这个方法最后会返回一个函数

3.原型链

每个函数都有一个prototype的属性, 除了function.prototype.bind(),该属性都指向原型,每个对象都有_proto_属性,指向了该对象构造函数的原型,其实这个属性指向了[[prototype]],只是[[prototype]]只存在于函数内部,我们并不能访问到,所以我们用_proto_来访问,对象可以通过_proto_来寻找不属于该对象的属性,_proto_将对象连接起来就组成了原型链。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容