JS启示录笔记

  1. javascript实际上是一种预包装若干原生对象构造函数的语言。这些构造函数用于生成一些表达特定类型值(如数字、字符串、函数、对象、数组)的复杂对象。同样,也可以通过Function()对象创建自定义的对象构造函数。不管是否是用户创建对象的模式,产生的最终结果通常都是创建一个复杂的对象。
  2. 构造函数的作用是创建多个共享特定特性和行为的对象。构造函数主要是一种用于生成对象的饼干模具,这些对象具有默认属性和属性方法。
  3. 当this值得宿主函数被封装在另一个函数的内部或在另一个函数的上下文中被调用时,this值将永远是对head对象的引用。
  4. 包含函数的函数,会创建堆栈执行作用域。这些链接在一起的栈被称为作用域链。
  5. 作用域链是根据函数定义的位置确定的,而不是在调用时确定的。这也叫做词法作用域。
  6. prototype属性是Javascript为每个Function()实例创建的一个对象。具体地说,它将通过new关键字创建的对象实例链接回创建它们的构造函数。因此,实例才可以共享或集成通用方法和属性。 (共享发生在属性查找时,每次在对象上查找或访问一个属性的内容时,将在该对象以及原型链上搜索该属性)