长话短说 之 js的原型和闭包
Posted 你好,年轻人......
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了长话短说 之 js的原型和闭包相关的知识,希望对你有一定的参考价值。
原型链:undefined, number, string, boolean 属于简单的值类型,函数、数组、对象、null、new obj()都是引用类型。检测值类型用typeof x 即可,检测引用类型obj instanceof object 是否为true。
那你发现function 和 object 有什么区别呢? 大名鼎鼎的jquery 竟然是个function typeof $=>function 。其实对象是通过函数创建的。
每个函数都有一个原型prototype,每个对象都有一个__proto__,所谓的原型链就是:访问一个对象的属性时,__proto__属性中查找,如果没有,再沿着__proto__这条链向上找到prototype,这就是原型链。
fn.__proto__===Fn.prototype;
this ,取何值,是在函数真正被调用执行的时候确定的。可以记住三种情况:
- 在全局函数中this等于window
- 当函数被当做某个对象的方法调用时,this等于那个对象
- 匿名函数的执行环境具有全局性,this通常指向window
自由变量,要到创建这个函数的那个作用域中取值。
闭包,它的最大用处有两个,一个是可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。好好理解这句话,闭包的原理是不是恍然大悟。应用情况无非就是两种:
函数作为返回值;函数作为参数传递。
以上是关于长话短说 之 js的原型和闭包的主要内容,如果未能解决你的问题,请参考以下文章