zoukankan      html  css  js  c++  java
  • 长话短说 之 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 ,取何值,是在函数真正被调用执行的时候确定的。可以记住三种情况:

    1. 在全局函数中this等于window
    2. 当函数被当做某个对象的方法调用时,this等于那个对象
    3. 匿名函数的执行环境具有全局性,this通常指向window

    自由变量,要到创建这个函数的那个作用域中取值。

    闭包,它的最大用处有两个,一个是可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。好好理解这句话,闭包的原理是不是恍然大悟。应用情况无非就是两种:

    函数作为返回值;函数作为参数传递。

  • 相关阅读:
    铺地毯
    解方程
    引水入城
    10.16今日暂时停更博客
    聪明的质监员
    CCF NOI plus 201(7)6 初赛题 解题报告
    初赛可能会用到的计算机基础理论知识整理
    火柴排队
    借教室
    10.10今日暂时停更博客
  • 原文地址:https://www.cnblogs.com/caolidan/p/7429436.html
Copyright © 2011-2022 走看看