jquery裡call和apply的用法

2021-10-08 21:15:15 字數 842 閱讀 9589

網路版:改變函式的上下文環境,也就是作用域,或者說是this指標;

站長版:在乙個函式裡呼叫另乙個函式或方法,並且不改變當前函式的this所代表的物件。

話不多說上**

var aa=5;var bb=2;

var cc=;

function add(aa,bb)

add.call(cc,3,2);

add.call(),通過call,傳遞了乙個物件cc給函式add,這時,在函式add裡,this指向的就是我們傳遞給它的這個物件了。這個例項很好的解釋了call是如何改變變數的this指標和作用域的。

call方法也可以實現jquery類的繼承

function person(name);

}function student(name)

new student("aijquery").showname();

從上面**中,我們看出,student函式裡,用call繼承了person物件,所以student裡也就有了showname的方法

上面的幾個例項,我們在實際上都不太能用到,下面這個例項,就與我們實際應用中非常接近了,下面的這個例項,實現了物件的多重繼承:

function jiafa();

}function jianfa();

}function jishuan()

new jishuan().jia(1,2);}

通過jiafa.call和jianfa.call,jisuan ()這個類 就同時具有了jianfa和jiafa兩個物件的方法和屬性 從而實現多重繼承

JavaScript中的call和apply應用

舉個栗子 const obj1 const obj2 console.log obj1.getname microzz console.log obj1.getname.call obj2 zhaohui 有的時候我們會覺得 document.getelementbyid這個方法太長了,我們會嘗試用...

call 和call的區別

語法 func.call thisarg,arg1,arg2,thisarg表示函式執行時使用的this值,arg1,arg2,是引數列表,表示函式執行時需要的引數。在建構函式繼承的示例中 父類 function person name,age 子類 function student name,ag...

call 和call的區別

這兩個方法都是函式物件的方法,需要通過函式物件來呼叫。它們的第乙個引數是乙個物件。因為你可以直接指定 this 繫結的物件,因此我們稱之為顯式繫結。例1 1 thisobj不傳或者為null undefined時,函式中的this會指向window物件 非嚴格模式 2 傳遞乙個別的函式名時,函式中的...