首页 > 编程语言 > 详细

JavaScript中函数上下文调用模式和闭包

时间:2020-05-13 17:33:05      阅读:46      评论:0      收藏:0      [点我收藏+]

函数的三种执行方式:函数中this的指向,不用管函数是怎么声明,只看是谁在调用(函数内部的this无法更改)

  1、作为普通函数调用:this的指向是window

  2、作为方法调用:this的指向是调用这个方法的对象

  3、作为构造函数调用:配合new关键字创建对象,this指向这个对象

 

更行函数内部的this指向:使用第四种调用模式(函数上下文调用模式)

  1、call():语法->函数.call(obj,arg1,arg2,...)

  2、apply():语法->函数.apply(obj,数组)

  3、bind():语法->函数.bind(obj),生成一个新的函数,不会立即执行

 

函数上下文调用模式注意:

  1、call(),apply(),bind(),这三个方法都在Function.prototype原型,所以所有函数都可以调用这三个方法

  2、使用函数上下文调用时,obj为包装类型(100,‘aaa’,true)时的this指向(Number,String,Boolean),obj为(undefined,null,window,不传)时的this指向window

  3、哪个函数进行函数上下文调用,哪个函数的this指向就被修改

 

闭包的作用:

  1、延长变量的生命周期

  2、提供有限的访问权限

 

沙盒/沙箱:

  1、分割作用域避免全局污染

  2、模块化开发

 

 

JavaScript中函数上下文调用模式和闭包

原文:https://www.cnblogs.com/ppliuye/p/12883428.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!