JS 函数

2016-08-15  本文已影响0人  april_Dong

函数有三种定义方式

 function add1(){
    console.log("函数声明");
 }
 var add2()=function(){
    console.log("函数表达式");
 }
var add3 = new Function("i",
  "console.log("函数实例化")
);
区别:
  1. 函数声明定义特点:
    函数定义会被前置;
    重复定义函数时,最后一次定义有效。
  2. 函数实例化定义特点:
    不遵循作用域逐级向上回溯原则;
    定义的函数只能访问本地作用域和全局作用域。

函数调用

  1. 函数调用模式
  -  this指向全局对象
  1. 方法调用模式
  -  this指向调用者
  1. 构造函数调用模式 new Function(...);
  -  this指向被构造的对象
  1. apple(call)调用模式
  -  this指向第一个参数

函数参数传递

屏幕快照 2016-08-15 下午2.49.33.png

原始类型参数的传递模式:按值传递


屏幕快照 2016-08-15 下午2.49.23.png

对象类型参数的传递模式:按共享传递

屏幕快照 2016-08-15 下午2.47.09.png

闭包

什么是闭包:函数内部定义的字函数引用到父函数的变量形成的变量。
功能:
1.保存函数执行状态
2.封装
3.性能优化

Function.prototype.bind

上一篇 下一篇

猜你喜欢

热点阅读