JS容易混淆的call apply和bind方法

2021-09-26 14:02:36 字數 792 閱讀 7213

詳情描述

共同點call()

定義:呼叫乙個物件的乙個方法,用另乙個物件替換當前物件

理解: method1.call(method2,num1,num2) = method1(num1,num2) 即用method1替換method2

例子:

function animal()   

}

function dog()

var animal=new animal();

var dog=new dog();

animal.showname.call(dog);//輸出為dog

最後一段**(animal.showname.call(dog)),意思是把animal的方法放到dog上執行,也可以說,把animal 的showname()方法放到 dog上來執行,所以this.name 應該是 dog。

bind()

mdn定義:bind()方法會建立乙個新函式,稱為繫結函式,當呼叫這個繫結函式時,繫結函式會以建立它時傳入 bind()方法的第乙個引數作為 this,傳入 bind() 方法的第二個以及以後的引數加上繫結函式執行時本身的引數按照順序作為原函式的引數來呼叫原函式。

例子:

var bar=function()

var foo=

var func=bar.bind(foo);

func();//輸出:3

注意:bind方法的返回值是函式

JS中容易混淆的函式

易混點記憶 僅供自己記憶使用 查詢 增刪 合併 翻轉 排序 不改變原陣列 slice 開始下標,結束下標 包括開始下標,不包括結束下標 改變原陣列 push 尾部新增 pop 尾部刪除 unshift 頭部新增 shift 頭部刪除 splice 開始下標,刪除的個數,新增的字元 從開始下標刪除,第...

JS中容易混淆的概念。

attribute是特性節點。每個dom元素都有乙個對應的attributes屬性來存放所有的attribute節點,attributes是乙個類陣列的容器,說得準確點就是namenodemap,總之就是乙個類似陣列但又和陣列不太一樣的容器。attributes的每個數字索引以名值對 name va...

容易混淆的const

關鍵字const並不能把變數變為常量!在乙個符號前加上const限定符只是表示這個符號不能被賦值。也就是他的值對於這個符號來說是唯讀的,但它並不防止通過程式的內部的方法來修改這個值。const最有用之處就是他來限定函式的形參,這樣該函式將不會修改實參指標所指的資料,但其他的函式卻可能會修改它。1 可...