课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
代码的简洁与优化是每一个程序员在工作中必须要培养的一种技术能力。今天我们就一起来了解一下,关于代码优化中的绑定规则都有哪些要求和使用方法。
this
ES6中的箭头函数采用的是词法作用域。
为什么要使用this:使API设计得更简洁且易于复用。
this即不指向自身,也不指向函数的词法作用域。
this的指向只取决于函数的调用方式
this绑定规则
new > 显示绑定 > 隐式绑定 > 默认绑定
默认绑定
当独立函数调用时,不管是否在调用栈中,this都指向全局对象(浏览器中为window)
严格模式下,不能将全局对象用于默认绑定。
隐式绑定
当函数引用有上下文对象时,隐式绑定规则会把函数调用中的this绑定到这个上下文对象。
对象属性引用链中只有后一层在调用位置中起作用。
要求:对象内部必须包含一个指向函数的属性,该对象可通过这个属性间接引用函数。
显式绑定
采用call()和apply(),通过传入一个对象(若为基本类型,会被封装函数转为对象—装箱),将this绑定到该对象。
new绑定
任何函数都可能被用作构造函数,当函数被new操作符“构造调用”时,会执行下面操作:
创建一个新对象(若该函数不是JS内置的,则创建一个新的Object对象);
将this绑定到这个对象;
执行构造函数中的代码(为这个新对象添加属性);
若函数没有返回其他对象,则自动返回这个新对象;若函数有return返回的是非对象,则还是自动返回这个新对象,即覆盖那个非对象。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。