Js中的this是什么?
2020-11-08 15:32:35
Web设计
admin
this是什么?JavaScript中最令人困惑的机制之一就是this关键字。它是一个在每个函数作用域中自动定义的特殊标识符关键字,但即便是一些老练的JavaScript开发者也对它到底指向什么感到困扰。任何足够先进的技术都跟魔法没有区别。
this是什么?
JavaScript中最令人困惑的机制之一就是this关键字。它是一个在每个函数作用域中自动定义的特殊标识符关键字,但即便是一些老练的JavaScript开发者也对它到底指向什么感到困扰。
任何足够先进的技术都跟魔法没有区别。--ArthurC.Clarke
JavaScript的this机制实际上没有那么先进,但是开发者们总是在大脑中插入“复杂”和“混乱”来解释这句话,毫无疑问,如果没有清晰的理解,在你的困惑中this可能看起来就是彻头彻尾的魔法。
注意:“this”这个词是在一般的论述中极常用的代词。所以,特别是在口头论述中,很难确定我们是在将“this”作为一个代词使用,还是在将它作为一个实际的关键字标识符使用。为了表意清晰,我会总是使用this来代表特殊的关键字,而在其他情况下使用“this”或this或this。
为什么要用this?
如果对于那些老练的JavaScript开发者来说this机制都是如此的令人费解,那么有人会问为什么这种机制会有用?它带来的麻烦不是比好处多吗?在讲解如何有用之前,我们应当先来看看为什么有用。
让我们试着展示一下this的动机和用途:
functionidentify(){
returnthis.name.toUpperCase();
}
functionspeak(){
vargreeting="Hello,I'm"+identify.call(this);
console.log(greeting);
}
varme={
name:"Kyle"
};
varyou={
name:"Reader"
};
identify.call(me);//KYLE
identify.call(you);//READER
speak.call(me);//Hello,I'mKYLE
speak.call(you);//Hello,I'mREADER
很赞哦! ()
- 上一篇: Js中的类型与文法
- 下一篇: Js中opener与parent的区别