js 闭包,原型链,作用域链

  JavaScript 因为主要是与用户互动,以及操作Dom,所以它只能是单线程(如一个线程要添加Dom节点,另一个线程要删减Dom节点,容易造成分歧)。但是H5提供类 web Worker允许js创建多线程,但是子线程受到主线程的控制,并且不能操作DOM。
  闭包: 闭包式指有权访问另外一个函数作用域中的变量的函数,可以理解为能够读取另一个函数作用域的变量的函数。
  原型(prototype):所有的函数都有一个特殊的属性(prototype),这是一个指针,指向的是一个对象(原型对象),原型对象中的方法和属性都可以被函数的实例所共享,所谓的函数实例是指以函数作为构造函数创建的对象,这些对象实例都可以共享构造函数的原型的方法。
  原型链:(找一个属性,首先会在 f.proto中去找,因为属性值为一个对象,那么就会去 f.proto.proto去找,同理如果还没找到,就会一直向上去查找,直到结果为 null 为止。这个串起来的链即为原型链)原型链是用于查找引用类型(对象)的属性,查找属性会沿着原型链依次进行,如果找到该属性会停止搜索,否则会沿着原型链依次查找直到结尾(返回null)。
  作用域:所谓作用域,就是变量或者函数能作用的范围
  作用域链:查找某个变量的作用域的这种一层层向上查找的关系称为作用域链。作用域链的作用主要用于查找标识符(变量),当作用域链查询变量的时候会沿着作用域链依次查找,如果找到标识符就会停止搜索,否则会沿着作用域链依次向后查找,直到作用域链的结尾。

猜你喜欢

转载自www.cnblogs.com/shizi1987/p/13172811.html
今日推荐