JS 函数

函数有三种定义方式

  • 函数声明
 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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在js中,函数本身属于对象的一种,因此可以定义、赋值,作为对象的属性或者成为其他函数的参数。函数名只是函数这个对象...
    bjhu电net阅读 552评论 0 5
  • JavaScript 函数定义 JavaScript 使用关键字 function 定义函数。函数可以通过声明定义...
    鹿守心畔光阅读 458评论 0 1
  • 继承 一、混入式继承 二、原型继承 利用原型中的成员可以被和其相关的对象共享这一特性,可以实现继承,这种实现继承的...
    magic_pill阅读 1,075评论 0 3
  • 函数定义 函数声明 函数表达式 函数实例化 不同函数定义方式的区别: 声明提前:代码执行前先对变量定义、函数声明进...
    angelwgh阅读 297评论 0 0
  • 在八十年代的农村,一首不知何处流传而来的小调《摘石榴》,犹如初春的晚风,融化了冰,吹皱了水,悄然催生了一个个向世俗...
    木棉之秋阅读 1,025评论 71 57