色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

javascript+this是什么

張越彬1年前7瀏覽0評論
Javascript是web開發(fā)中必備的一種編程語言,而this是JavaScript中的一個重要概念,掌握好它可以幫助我們更好的理解Javascript的閉包、作用域、對象以及函數(shù)等概念。那么,本文將圍繞著javascript+this的主題,詳細介紹它的含義及其使用方法。
this是一個JavaScript的關(guān)鍵字,它指代當前函數(shù)執(zhí)行的上下文環(huán)境,也可以稱之為執(zhí)行上下文。this值的指向是在函數(shù)被調(diào)用時確定的,實際上就是函數(shù)被執(zhí)行時所在的上下文對象,通常被稱為函數(shù)的this值。換言之,它是一個指針,指向函數(shù)的調(diào)用者,可以是任何JavaScript對象。
舉例來說,我們可以定義一個函數(shù)person,而在內(nèi)部對this進行賦值,這樣就可以使用this調(diào)用person的屬性和方法:
<code>
function Person(name, age, sex) {
this.name = name;
this.age = age;
this.sex = sex;
this.sayName = function() {
console.log(this.name);
};
}
</code>

在這個例子中,this指向person,而this.name則是對象person的屬性,我們可以通過this來操作這個屬性。同樣地,this.sex和this.age也可以通過對象來訪問,而this.sayName則是一個函數(shù),通過它我們可以調(diào)用person對象的name屬性值。
但是,只有在函數(shù)被調(diào)用的時候,this才會被賦予一個具體的值,否則它會被賦予undefined。因此,我們需要使用JavaScript中的apply、call、bind等方法來控制函數(shù)執(zhí)行時this的指向。
apply和call是一類函數(shù)方法,都可以指定調(diào)用時的上下文,從而改變函數(shù)的this指針。例如:
<code>
let name = "window";
<br>
function showName() {
console.log(this.name);
}
<br>
let p = {
name: "person"
}
<br>
showName.apply(); // 輸出"window"
showName.call(p); // 輸出"person"
</code>

在上述代碼中,當我們調(diào)用showName函數(shù)時,由于沒有指定上下文對象,因此this指向的是window對象。而當我們使用call方法調(diào)用showName函數(shù)時,把p對象當做參數(shù)傳入,就將this指向了p對象,輸出了p對象的name屬性值。
bind方法同apply和call也是可以用來改變函數(shù)this指向的方法。bind會創(chuàng)建一個新的函數(shù)實例,它的this指向第一個參數(shù),返回一個新的函數(shù)。例如:
<code>
let name = "window";
<br>
function showName() {
console.log(this.name);
}
<br>
let p = {
name: "person"
}
<br>
let bindedFunc = showName.bind(p);
bindedFunc(); // 輸出"person"
</code>

在這個例子中,我們定義了一個showName函數(shù)以及一個p對象,同時通過bind方法將showName函數(shù)和p對象綁定在了一起。當我們調(diào)用bindedFunc函數(shù)時,它的this指向p對象,于是就輸出了p對象的name屬性值。
總結(jié)起來,JavaScript中的this指針是一個指向函數(shù)執(zhí)行上下文的指針,它變量用來訪問該函數(shù)的關(guān)聯(lián)對象。通過apply、call、bind等方法,可以改變函數(shù)執(zhí)行時this指針的指向。對于新手來說,this的使用可能會不太熟練,但是只要理解了它的基本原理和實際應(yīng)用,就可以更好的掌握JavaScript編程技巧。