JS中this指向函數(shù)的調(diào)用方法有哪些?這個問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!
初學(xué)javascript總會對this指向感到疑惑,想要深入學(xué)習(xí)javascript,必須先理清楚和this相關(guān)的幾個概念。javascript中this總是指向一個對象,但具體指向誰是在運行時根據(jù)函數(shù)執(zhí)行環(huán)境動態(tài)綁定的,而并非函數(shù)被聲明時的環(huán)境。除去不常用的with和eval的情況,具體到實際應(yīng)用中,this指向大致可以分為以下4種。
作為對象的方法調(diào)用當(dāng)函數(shù)作為對象的方法被調(diào)用時,this指向該對象:
var person = { name: 'twy', getName: function() { console.info(this === person); // 輸出true console.info(this.name); // 輸出twy } } person.getName();作為普通函數(shù)調(diào)用
當(dāng)函數(shù)作為普通的函數(shù)被調(diào)用時,非嚴(yán)格模式下this指向全局對象:
function getName(){ // 非嚴(yán)格模式 console.info(this === window); // 瀏覽器環(huán)境下輸出true } getName();
嚴(yán)格模式下this為undefined:
function getName(){ // 嚴(yán)格模式 "use strict" console.info(this === window); // 輸出false } getName();構(gòu)造器調(diào)用
當(dāng)new一個對象時,構(gòu)造器里的this指向new出來的這個對象:
function person(){ // 構(gòu)造函數(shù) this.color = 'white'; } var boy = new person(); console.info(boy.color); // 輸出whitecall或apply調(diào)用
用Function.prototype.apply或Function.prototype.call可以動態(tài)改變傳入函數(shù)的this指向:
// 聲明一個父親對象,getName方法返回父親的名字 var father = { name: 'twy', getName: function(){ return this.name; } } // 生命一個兒子對象,但是沒有返回名字的功能 var child = { name: 'chy' } console.info(father.getName()); // 輸出twy // 使用call或apply將father.getName函數(shù)里this指向child console.info(father.getName.call(child)); // 輸出chy console.info(father.getName.apply(child)); // 輸出chy
感謝各位的閱讀!看完上述內(nèi)容,你們對JS中this指向函數(shù)的調(diào)用方法有哪些大概了解了嗎?希望文章內(nèi)容對大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站制作公司行業(yè)資訊頻道。
本文名稱:JS中this指向函數(shù)的調(diào)用方法有哪些-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://www.rwnh.cn/article16/cehsgg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、營銷型網(wǎng)站建設(shè)、網(wǎng)站設(shè)計公司、網(wǎng)站策劃、小程序開發(fā)、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容