掌握JavaScript通常意味着了解其细微差别,而关键字是一个很好的示例。 虽然JavaScript相对容易学习,但即使是经验丰富的程序员也可以绊倒的行为。本文阐明了JavaScript中this
的复杂性。
this
this
密钥概念:
上下文绑定:JavaScript中未静态定义的JavaScript中的
this
>的行为在不同的上下文中有所不同:全局范围,简单函数调用,对象方法和构造函数函数。
this
>
call()
apply()
bind()
理解this
:this
,我们需要考虑:创建:this
当JavaScript函数执行时,创建了新的执行上下文。此上下文包括有关函数调用的信息,包括的值,该值绑定到称为函数的对象(如果适用)。
this
this
参考:
this
>示例:
在这里, this
是指
>调用上下文:
<code class="language-javascript">var car = { brand: "Nissan", getBrand: function(){ console.log(this.brand); } }; car.getBrand(); // Output: Nissan</code>在各种情况下的行为:
>
this.brand
getBrand()
car.brand
getBrand()
全局范围:car
在全局范围(外部函数之外),
)。
>简单函数调用:没有对象上下文的直接函数调用。 在非图片模式下,this
默认为全局对象。在严格的模式下("use strict";
),this
是undefined
。
>对象方法:>当函数称为对象的方法时,>被绑定到该对象。this
构造函数函数:用调用函数时,它将成为构造函数。 new
绑定到新创建的对象实例。
this
:this
call()
:apply()
> bind()
调用具有指定this
值的函数,而参数则单独传递。
call()
:类似于this
>,但接受参数为数组。
apply()
:创建一个新功能,具有永久绑定的call()
value。
摘要:bind()
JavaScript中的> this
关键字功能强大,但可能会令人困惑。了解其上下文的性质并利用
常见问题(常见问题解答):>
>原始文本的常见问题解答部分已经是共同相关的问题和答案的全面摘要,因此最好将其保持原样。
以上是揭示JavaScript的内部工作的详细内容。更多信息请关注PHP中文网其他相关文章!