函式的call()和apply()方法

2021-10-02 20:21:09 字數 928 閱讀 8996

function

sum(num1, num2)

function

callsum1

(num1, num2)

function

callsum2

(num1, num2)

alert

(callsum1(10

,10))

;//20

alert

(callsum2(10

,10))

;//20

在上面這個例子中, *callsum1()*在執行 *sum()函式時傳入了 this 作為 this 值(因為是在全域性作用域中呼叫的,所以傳入的就是 window 物件)和arguments 物件。而 callsum2 同樣也呼叫了sum()*函式,但它傳入的則是 this 和乙個引數陣列。這兩個函式都會正常執行並返回正確的結果。

function

sum(num1, num2)

function

callsum

(num1, num2)

alert

(callsum(10

,10))

;//20

window.color =

"red"

;var o =

;function

saycolor()

saycolor()

;//red

saycolor.

call

(this);

//red

saycolor.

call

(window)

;//red

saycolor.

call

(o);

//blue

apply 方法和call 方法

obj.func.call obj1 是將obj1看做obj,呼叫func方法,將第乙個引數看做函式呼叫的物件,可以看做,將obj的方法給obj1使用 在函式體內this的值就是指向這個呼叫者,也就是第乙個引數,剩餘的引數都是需要傳遞給函式的值 例如 function add a,b return ...

js基礎 函式的方法call和apply

var obj var obj2 function fun fun fun.call obj2.name 以函式形式呼叫時 this為window,如圖 以call方法呼叫時,this為傳遞的實參,如圖 在物件裡定義乙個方法,使用call方法呼叫和函式呼叫 var obj var obj2 func...

關於call和apply函式

call函式的描述 寫乙個方法,然後讓另外乙個新的物件來繼承它 而不是在新物件中再寫一次這個方法 this.x 9 var module module.getx 返回 81 var retrievex module.getx retrievex 返回 9,在這種情況下,this 指向全域性作用域 f...