js中 apply與call的用法

2021-08-29 20:52:49 字數 1480 閱讀 9280

都是在特定的作用域中呼叫函式,等於設定函式體內this物件的值,以擴充函式賴以執行的作用域。

call()方法使用示例:

//例1//例2

var pet =

}pet.speak('speak'); // 結果:speak...

var dog =

//將this的指向改變成了dog

pet.speak.call(dog, 'speak'); //結果: speakwang

//例1//例2

function

pet(words)

}function

dog(words)

var dog = new dog('wang');

dog.speak();

語法:說明:如果argarray不是乙個有效陣列或不是arguments物件,那麼將導致乙個

typeerror,如果沒有提供argarray和thisobj任何乙個引數,那麼global物件將用作thisobj。

語法:call([thisobject[,arg1 [,arg2 [,...,argn]]]]);,應用某一物件的乙個方法,用另乙個物件替換當前物件。

說明:call方法可以用來代替另乙個物件呼叫乙個方法,call方法可以將乙個函式的物件上下文從初始的上下文改變為thisobj指定的新物件,如果沒有提供thisobj引數,那麼global物件被用於thisobj。

使用示例1:

function

add(c,d)

var s = ;

console.log(add.call(s,3,4)); // 1+2+3+4 = 10

使用示例2:

window.firstname = "cynthia";

window.lastname = "_xie";

var myobject = ;

function

getname

() function

getmessage

(***,age)

getname.call(window); // cynthia_xie

getname.call(myobject); // myobject

getmessage.call(window,"女",21); //cynthia_xie 性別: 女 age: 21

getmessage.call(myobject,"未知",22); //myobject 性別: 未知 age: 22

script>

js中call與apply用法

兩者的格式和引數定義 call thisarg arg1,arg2,引數列表,arg1,arg2,上面兩個函式內部的this指標,都會被賦值為thisarg,這可實現將函式作為另外乙個物件的方法執行的目的 一 call 的簡單用法 首先,我們先看個簡單的例子 call 然後,執行結果如下 globa...

js中call與apply用法

兩者的格式和引數定義 call thisarg arg1,arg2,引數列表,arg1,arg2,上面兩個函式內部的this指標,都會被賦值為thisarg,這可實現將函式作為另外乙個物件的方法執行的目的 一 call 的簡單用法 首先,我們先看個簡單的例子 call 然後,執行結果如下 globa...

js中call與apply用法

1 2兩者的格式和引數定義 3 call thisarg arg1,arg2,引數列表,arg1,arg2,引數陣列,argarray 5上面兩個函式內部的this指標,都會被賦值為thisarg,這可實現將函式作為另外乙個物件的方法執行的目的67 一 call 的簡單用法 8首先,我們先看個簡單的...