javascript中的this总结
2017-01-10 19:04
148 查看
1、关于this
我们需要根据 "调用位置" 上函数的 "调用方式" 来确定函数中this使用的 "绑定规则"
2、绑定规则
(1)默认绑定: this==>winow对象
(2)隐式绑定
1.this==>函数引用的上下文对象
2.隐式丢失:发生引用传递时会有隐式丢失的情况:引用赋值;参数传递;
3.隐式丢失解决方案:使用硬绑定(一种显示绑定的形式)
(3)显式绑定
this==>我们指定的对象
(4)new绑定
this==>实例对象
3、优先级
new绑定 > 显示绑定 > 隐式绑定 > 默认绑定
4、正常情况下的规则
(1) 函数是否在new中调用(new绑定)?如果是的话this绑定的是新创建的对象。
var bar = new foo()
(2) 函数是否通过call、apply(显式绑定)或者硬绑定调用?如果是的话,this绑定的是指定的对象。
var bar = foo.call(obj2)
(3) 函数是否在某个上下文对象中调用(隐式绑定)?如果是的话,this绑定的是那个上下文对象。
var bar = obj1.foo()
(4) 如果都不是的话,使用默认绑定。如果在严格模式下,就绑定到undefined,否则绑定到全局对象。
var bar = foo()
5、绑定例外
(1)在某些场景下this的绑定行为会出乎意料,你认为应当应用其他绑定规则时,实际上应用的可能 是默认绑定规则
(2)软绑定:箭头函数的this不符合我们的this正常的绑定规则
6、柯里化
只传递给函数一部分参数来调用它,让它返回一个函数去处理剩下的参数。(预定义一些参数)
柯里化:也常译为“局部套用”,是把多参数函数转换为一系列单参数函数并进行调用的技术
我们需要根据 "调用位置" 上函数的 "调用方式" 来确定函数中this使用的 "绑定规则"
2、绑定规则
(1)默认绑定: this==>winow对象
(2)隐式绑定
1.this==>函数引用的上下文对象
2.隐式丢失:发生引用传递时会有隐式丢失的情况:引用赋值;参数传递;
3.隐式丢失解决方案:使用硬绑定(一种显示绑定的形式)
(3)显式绑定
this==>我们指定的对象
(4)new绑定
this==>实例对象
3、优先级
new绑定 > 显示绑定 > 隐式绑定 > 默认绑定
4、正常情况下的规则
(1) 函数是否在new中调用(new绑定)?如果是的话this绑定的是新创建的对象。
var bar = new foo()
(2) 函数是否通过call、apply(显式绑定)或者硬绑定调用?如果是的话,this绑定的是指定的对象。
var bar = foo.call(obj2)
(3) 函数是否在某个上下文对象中调用(隐式绑定)?如果是的话,this绑定的是那个上下文对象。
var bar = obj1.foo()
(4) 如果都不是的话,使用默认绑定。如果在严格模式下,就绑定到undefined,否则绑定到全局对象。
var bar = foo()
5、绑定例外
(1)在某些场景下this的绑定行为会出乎意料,你认为应当应用其他绑定规则时,实际上应用的可能 是默认绑定规则
(2)软绑定:箭头函数的this不符合我们的this正常的绑定规则
6、柯里化
只传递给函数一部分参数来调用它,让它返回一个函数去处理剩下的参数。(预定义一些参数)
柯里化:也常译为“局部套用”,是把多参数函数转换为一系列单参数函数并进行调用的技术
相关文章推荐
- 各种dialog,alertdialog,AlertDialog.Builder(this)的总结,并封住成javaScript调用
- Javascript中函数调用与this所指对象关系进行了一下总结
- JavaScript中的this用法总结
- JavaScript 中 this 的使用技巧总结
- JavaScript学习总结——this对象
- 总结JavaScript中的this
- JavaScript中this使用总结
- JavaScript核心:对象 原型链 构造函数 执行上下文栈 执行上下文 变量对象 活动对象 作用域链 闭包 This 总结
- Javascript 作用域链 活动对象 执行环境 与 this 的纠结 总结~
- JavaScript中this的四个绑定规则总结
- Javascript的this用法总结
- Javascript this 的一些学习总结
- Javascript 作用域链 活动对象 执行环境 与 this 的纠结 总结~
- Javascript 笔记与总结(1-4)this
- javascript的this总结
- javascript声明变量var和this的总结
- javascript中this的总结
- Javascript中var和this总结
- 面试某公司前端关于javascript中this的总结
- JavaScript this用法总结