新聞中心
2、this和函數(shù)調(diào)用方式有關(guān)系3、this和箭頭函數(shù)在JavaScript編程中,this就是指向函數(shù)內(nèi)部對(duì)象或者全局對(duì)象(瀏覽器環(huán)境下為window)的指針。
- 本文目錄導(dǎo)讀:
- 1、什么是this?
- 2、this和函數(shù)調(diào)用方式有關(guān)系
- 3、this和箭頭函數(shù)

站在用戶的角度思考問題,與客戶深入溝通,找到張灣網(wǎng)站設(shè)計(jì)與張灣網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站建設(shè)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋張灣地區(qū)。
在JavaScript編程中,this是一個(gè)十分重要的關(guān)鍵字。它可以讓我們引用當(dāng)前正在執(zhí)行代碼的對(duì)象,但同時(shí)也可能帶來一些意想不到的問題。因此,在使用this之前,我們必須對(duì)其有深刻理解。
什么是this?
簡單來說,this就是指向函數(shù)內(nèi)部對(duì)象或者全局對(duì)象(瀏覽器環(huán)境下為window)的指針。當(dāng)然,在不同情況下,this會(huì)指向不同的對(duì)象。
this和函數(shù)調(diào)用方式有關(guān)系
在JavaScript中,函數(shù)調(diào)用方式主要有四種:作為普通函數(shù)、作為方法、通過call()和apply()方法調(diào)用以及通過new操作符創(chuàng)建實(shí)例時(shí)調(diào)用構(gòu)造函數(shù)。
當(dāng)作為普通函數(shù)被調(diào)用時(shí), this 指向全局對(duì)象 window 。
```
function test(){
console.log(this);
}
test(); // Window
而當(dāng)一個(gè)方法被賦值給一個(gè)變量并且該變量被執(zhí)行時(shí),則 this 的值取決于該方法所屬于的對(duì)象:
var obj = {
name: "張三",
sayName: function(){
console.log(this.name);
}
obj.sayName(); // 張三
如果你使用了 call 或 apply 方法,則可以改變 this 的上下文:
var person1 = {name:"張三"};
var person2 = {name:"李四"};
function sayName(){
console.log(this.name);
sayName.call(person1); // 張三
sayName.apply(person2); // 李四
最后,當(dāng)使用 new 操作符創(chuàng)建實(shí)例時(shí),this 將指向新創(chuàng)建的對(duì)象:
function Person(name){
this.name = name;
var person = new Person("張三");
console.log(person.name); // 張三
this和箭頭函數(shù)
在ES6中引入了箭頭函數(shù)。與普通函數(shù)不同的是,在箭頭函數(shù)中,this 的值被綁定到了定義該函數(shù)時(shí)所在的詞法作用域上。
這意味著,在箭頭函數(shù)內(nèi)部調(diào)用 this ,它將沿著作用域鏈向上查找并返回第一個(gè)非箭頭函數(shù)父級(jí)作用域內(nèi)的 this 值。
因此,如果我們使用箭頭函數(shù)來定義方法,則其內(nèi)部的 this 值將始終為當(dāng)前對(duì)象:
num: 10,
add: function () {
setTimeout(() => {
console.log(this.num + 1);
},1000)
}
};
obj.add(); //11(等待1s后輸出)
無論你是初學(xué)者還是資深開發(fā)人員,在JavaScript編程中理解this關(guān)鍵字都是至關(guān)重要的。只有通過對(duì)不同情況下this指針行為進(jìn)行深入分析,并應(yīng)用正確的技術(shù)處理方式才能寫出高質(zhì)量、可擴(kuò)展且易于維護(hù)的代碼。
希望本文對(duì)您有所啟發(fā),愿你在使用this時(shí),能夠避免一些容易犯的錯(cuò)誤,并寫出更加優(yōu)秀的JavaScript代碼。
本文標(biāo)題:深入解析JavaScript中的this關(guān)鍵字
地址分享:http://m.fisionsoft.com.cn/article/djddchh.html


咨詢
建站咨詢
