javascript的高级特性(续)

高级javascript编程原理

javascript的特殊之处


  1. 每个函数对象都有一个prototype对象
  2. 每个函数对象的prototype都有一个constructor属性
  3. 函数构建的时候prototype指向父对象的prototype,或者理解为复制一份
  4. 函数构建的时候prototype的constructor指向自己
  5. 调用函数的时候会执行constructor方法
  6. 函数可以调用自己的prototype对象的属性和方法
  7. 函数可以覆盖自己的prototype对象的属性和方法


javascript函数的隐含特性

函数参数获取的第二种形式

无论你如何定义函数的参数,在调用函数的时候,所有参数都会以数组元素的形式赋值给函数的arguments这个变量

调用函数的对象被赋值为caller,被调用函数被赋值为callee

作用域链和函数提升

普通function的定义可以做到前置调用,而变量式声明的函数则不能前置调用。

浏览器的顶级作用域是window

ECMA5 和 AMD, CommonJS

AMD(asynchronous module definition) 提供了浏览器端异步加载所有js文件的方式

CommonJs 定义了服务器端模块化的支持方式:

  1. require()引用和调用文件的对象
  2. module.exports和exports来为文件中的对象提供调用接口



你可能感兴趣的:(JavaScript)