Reflect.apply() 方法

admin發表於2019-05-11

關於Proxy更多內容可以參閱JavaScript Proxy和Reflect一章節。

通過指定的引數列表發起對目標(target)函式的呼叫。

語法結構:

[JavaScript] 純文字檢視 複製程式碼
Reflect.apply(target, thisArgument, argumentsList)

引數解析:

(1).target:目標函式。

(2).thisArgument:target函式呼叫時繫結的this物件。

(3).argumentsList:target函式呼叫時傳入的實參列表,該引數應該是一個類陣列的物件。

特別說明:如果target不是一個物件,會報錯。

程式碼例項:

[JavaScript] 純文字檢視 複製程式碼
console.log(Function.prototype.apply.call(Math.floor, undefined, [1.75]));

上面的程式碼可以使用Reflect.apply()進行簡化:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
console.log(Reflect.apply(Math.floor, undefined, [1.75]));

上面程式碼的功能和第一段程式碼是一樣的。

[JavaScript] 純文字檢視 複製程式碼執行程式碼
let antzone = {
  url:"www.softwhy.com"
}
function func(webName) {
  console.log(webName + "的url地址是:" + this.url);
}
Reflect.apply(func, antzone,["螞蟻部落"])

相關文章