javascript
JavaScript this 关键词
親自試一試
this 是什么?
JavaScript?this?關鍵詞指的是它所屬的對象。
它擁有不同的值,具體取決于它的使用位置:
- 在方法中,this?指的是所有者對象。
- 單獨的情況下,this?指的是全局對象。
- 在函數(shù)中,this?指的是全局對象。
- 在函數(shù)中,嚴格模式下,this?是 undefined。
- 在事件中,this?指的是接收事件的元素。
像?call()?和?apply()?這樣的方法可以將 this 引用到任何對象。
方法中的 this
在對象方法中,this?指的是此方法的“擁有者”。
在本頁最上面的例子中,this?指的是 person 對象。
person 對象是 fullName 方法的擁有者。
fullName : function() {return this.firstName + " " + this.lastName; }親自試一試
單獨的 this
在單獨使用時,擁有者是全局對象,因此?this?指的是全局對象。
在瀏覽器窗口中,全局對象是?[object Window]:
實例
var x = this;親自試一試
在嚴格模式中,如果單獨使用,那么?this?指的是全局對象?[object Window]:
實例
"use strict"; var x = this;親自試一試
函數(shù)中的 this(默認)
在 JavaScript 函數(shù)中,函數(shù)的擁有者默認綁定?this。
因此,在函數(shù)中,this?指的是全局對象?[object Window]。
實例
function myFunction() {return this; }親自試一試
函數(shù)中的 this(嚴格模式)
JavaScript 嚴格模式不允許默認綁定。
因此,在函數(shù)中使用時,在嚴格模式下,this?是未定義的(undefined)。
實例
"use strict"; function myFunction() {return this; }親自試一試
事件處理程序中的 this
在 HTML 事件處理程序中,this?指的是接收此事件的 HTML 元素:
實例
<button οnclick="this.style.display='none'">點擊來刪除我! </button>親自試一試
對象方法綁定
在此例中,this?是 person 對象(person 對象是該函數(shù)的“擁有者”):
實例
var person = {firstName : "Bill",lastName : "Gates",id : 678,myFunction : function() {return this;} };親自試一試
實例
var person = {firstName: "Bill",lastName : "Gates",id : 678,fullName : function() {return this.firstName + " " + this.lastName;} };親自試一試
換句話說,this.firstName?意味著?this(person)對象的?firstName?屬性。
顯式函數(shù)綁定
call()?和?apply()?方法是預定義的 JavaScript 方法。
它們都可以用于將另一個對象作為參數(shù)調用對象方法。
您可以在本教程后面閱讀有關?call()?和?apply()?的更多內容。
在下面的例子中,當使用 person2 作為參數(shù)調用 person1.fullName 時,this?將引用 person2,即使它是 person1 的方法:
實例
var person1 = {fullName: function() {return this.firstName + " " + this.lastName;} } var person2 = {firstName:"Bill",lastName: "Gates", } person1.fullName.call(person2); // 會返回 "Bill Gates"總結
以上是生活随笔為你收集整理的JavaScript this 关键词的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 二值化每个特征,微软用1350亿参数稀疏
- 下一篇: 美团点评基于 Flink 的实时数仓平台