哎呀,小伙子,你不知道JavaScript中call()、apply()、bind()這三個小家伙都有啥用嗎?那我經(jīng)驗(yàn)豐富的程序員親自來給你講解一下吧。
看,這三個小家伙都是用于改變JavaScript函數(shù)中this指針的引用的,讓它們指向不同的對象。其中,call()和apply()的作用是直接改變this的引用并執(zhí)行函數(shù),bind()則是將函數(shù)與新的this綁定起來返回一個新的函數(shù),以便稍后調(diào)用??疵靼琢税??
下面,我們就來看一下這三個小家伙的用法吧。
#1. call()的用法
小伙子,假設(shè)有一個對象和一個函數(shù):
```JavaScript
var obj = {name: '小明'};
function greet(){
console.log('你好,' + this.name);
}
```
如果我們要將greet()中的this引用變成obj對象,就要用到call()。簡單的調(diào)用方式是這樣的:
```JavaScript
greet.call(obj);
```
#2. apply()的用法
小伙子,apply()和call()很相似,只是傳參數(shù)的方式不一樣。如果有一個對象和一個函數(shù):
```JavaScript
var obj = {name: '小明'};
function greet(age, gender){
console.log('你好,我叫'+ this.name + ',我今年' + age + '歲,我是' + gender + '的');
}
```
則可以這樣調(diào)用:
```JavaScript
greet.apply(obj, [18, '男']);
```
這里傳遞的第二個參數(shù)是一個數(shù)組,包含了函數(shù)所需的所有參數(shù)。
#3. bind()的用法
小伙子,我們來看看bind()的用法吧。假設(shè)有一個對象和一個函數(shù):
```JavaScript
var obj = {name: '小明'};
function greet(){
console.log('你好,' + this.name);
}
```
可以這樣使用bind():
```JavaScript
var newGreet = greet.bind(obj);
newGreet();
```
這里,我們將原來的greet()函數(shù)與obj對象綁定在一起,返回一個新的函數(shù)newGreet,稍后直接調(diào)用newGreet()就可以了。
好的,小伙子,以上就是call()、apply()、bind()這三個小家伙的用法。你牢記了沒有?快去試試??! yinyiprinting.cn 寧波海美seo網(wǎng)絡(luò)優(yōu)化公司 是網(wǎng)頁設(shè)計(jì)制作,網(wǎng)站優(yōu)化,企業(yè)關(guān)鍵詞排名,網(wǎng)絡(luò)營銷知識和開發(fā)愛好者的一站式目的地,提供豐富的信息、資源和工具來幫助用戶創(chuàng)建令人驚嘆的實(shí)用網(wǎng)站。 該平臺致力于提供實(shí)用、相關(guān)和最新的內(nèi)容,這使其成為初學(xué)者和經(jīng)驗(yàn)豐富的專業(yè)人士的寶貴資源。
聲明本文內(nèi)容來自網(wǎng)絡(luò),若涉及侵權(quán),請聯(lián)系我們刪除! 投稿需知:請以word形式發(fā)送至郵箱[email protected]
好一句為祖國而賽,好樣的~看得我熱血沸騰