你的位置:首页 > 软件开发 > Java > 关于js中的this

关于js中的this

发布时间:2015-10-23 10:00:06
关于js中的thisthis是javascript中一个很特别的关键字,也是一种很复杂的机制,学习this的第一步就是要明白this既不指向函数自身也不指向函数的词法作用域,this实际上是函数被调用时发生的绑定,它指向什么完全取决于函数在哪里被调用。1. 调用位置现在来说一下调 ...

关于js中的this

关于js中的this

this是javascript中一个很特别的关键字,也是一种很复杂的机制,学习this的第一步就是要明白this既不指向函数自身也不指向函数的词法作用域,this实际上是函数被调用时发生的绑定,它指向什么完全取决于函数在哪里被调用

1. 调用位置

现在来说一下调用位置:调用位置就是函数在代码中被调用的位置(而不是声明的位置)。在工具中展示的调用列表,找到栈中的第二个元素(从栈顶往下第二个),这就是该函数的真正的调用位置。

2. 绑定规则

现在我们已经找到了调用位置,那调用位置如何决定this的绑定对象呢?在这个例子中,函数foo被当作引用属性添加到obj中,但严格的说它并不属于obj对象,然后,调用位置会使用obj上下文来引用函数,可以说但是存在一个问题,被隐式绑定的函数有可能会丢失绑定对象,然后应用默认绑定规则,这里就不细讲了(比如在传入回调函数时.......)。

3.显示绑定

隐式绑定时,我们必须在一个对象内部包含一个指向函数的属性,并通过这个属性间接引用函数,从而把this隐式绑定到这个对象上。但是我们想粗暴一点怎么办的?

原标题:关于js中的this

关键词:JS

JS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。