//定義乙個函式實現兩個數相加
function
demo
(a, b)
//改變this指向 第乙個引數是你指定的this
var result = demo.
call(,
1,2)
; console.
log(result)
;//返回值是上面函式定義的返回值 且使用call的同時 call執行函式
//call方法有兩個作用 1改變this指向(第乙個引數) 2傳遞原函式所需的引數(剩餘引數) 以逗號的格式分隔
//改變this指向 第乙個引數是你指定的this 第二個引數是陣列 陣列裡面是傳遞的引數
var result1 = demo.(,
[2,3
]); console.
log(result1)
;//呼叫的時候不執行原函式
var demo1 = demo.
bind(,
5,9)
demo()
;//呼叫demo時發現this並沒有改變 說明bind沒有改變原函式中的this
//因為bind是返回了乙個新的函式
demo1()
;var result2 =
demo1(2
,3);
console.
log(result2)
;//總結 bind有兩個作用:1返回乙個新的函式 改變這個新函式中的this 2預傳引數
//預傳引數之後 就算呼叫的時候有傳遞新的引數 也會以之前預傳的引數為準
//求乙個陣列中的最大值
var arr =[1
,44,-
9,5,
26,233,54,
99];
let max = math.max.(""
, arr)
console.
log(max)
;//求乙個陣列中的最小值
let min = math.min.(""
, arr)
console.
log(min)
;
改變函式內部this指向的三個方法
call 方法呼叫乙個物件。簡單理解為呼叫函式的方式,但是它可以改變函式的 this 指向 應用場景 經常做繼承.1.call 可以呼叫函式 也可以改變函式內的this 指向 2.call 的主要作用可以實現繼承 var o function fn a,b fn 此時的this指向的是window ...
面試必備 更改this指向的三個方法
1.new關鍵字 用變數a建立了乙個fn的例項 相當於複製了乙份fn到物件a裡面 此時僅僅只是建立,並沒有執行,而呼叫這個函式fn的是物件a,那麼this指向的自然是物件a,那麼為什麼物件a中會有user,因為你已經複製了乙份fn函式到物件a中,用了new關鍵字就等同於複製了乙份 2.call ca...
this指向及改變this指向的方法
一 函式的呼叫方式決定了 this 的指向不同,但總的原則,this指的是呼叫函式的那個物件 1.普通函式呼叫,此時 this 指向 全域性物件window function fn fn 此處預設省略window 2.在嚴格模式下 use strict 為undefined.function foo...