JavaScript中apply和call的理解

2021-08-16 21:03:54 字數 757 閱讀 5489

/*

這兩個方法作用是相同, 只是用法不同,

*//* */

// null 代表不需要改變this的指向!!

console.log(math.max.call(null, 1, 2, 3, 4, 5, 6, 1000));

var obj1 =

var obj2 =

window.name = "window";

var getname = function

() getname();

getname.call(obj1);

// 在上述作用中, 我們有乙個延伸作用, 借用建構函式來實現繼承!

var afunc = function

() var xiaohei = new afunc();

console.log(xiaohei.name);

var bfunc = function

() ;

var xiaohei2 = new bfunc();

console.log(xiaohei2.name);

/*arguments 是可以拿到函式中傳入的引數, 整合乙個類陣列

只是乙個類陣列, 可以通過下標訪問元素, 但是不是乙個陣列, 不能使用陣列的方法

比如push shift都不能使用

*/var text = function

() text(1,2,3,4,5);

Javascript中call和apply的區別

如下 function add a,b function reduce a,b add.call reduce,1,3 將add方法運用到reduce,結果為4 如下例 如下 複製 function b b window b.call window b.call a 2,3 a 再看乙個複雜的例子 ...

javascript中call與apply的區別

123 45 call 方法 function.call thisobj arg1 arg2 argn call 呼叫乙個物件的乙個方法,用另乙個物件替換當前物件。例如 b.call a,args1,args2 即a物件呼叫b物件的方法。它們的共同之處 都 可以用來代替另乙個物件呼叫乙個方法,將乙個...

javascript中call與apply的區別

123 45 call 方法 function.call thisobj arg1 arg2 argn call 呼叫乙個物件的乙個方法,用另乙個物件替換當前物件。例如 b.call a,args1,args2 即a物件呼叫b物件的方法。它們的共同之處 都 可以用來代替另乙個物件呼叫乙個方法,將乙個...