簡體   English   中英

如何在JavaScript中為Google閉包編譯器設置參數類型?

[英]How can I set type of arguments in JavaScript for Google closure compiler?

如你所知,java腳本的每個函數都有一個名為'arguments'的變量,它包含傳遞給函數的所有參數。

請考慮以下代碼示例:

String.prototype.format = function(pattern){

var args = arguments.slice(1);

// other implementations are removed...

}

在這種情況下,Google Closure Compiler告訴我參數沒有方法切片。

事實上,它有一個方法名稱切片,但Google Closure Compiler無法確定參數數組的類型。

但在運行時代碼運行正常

如何定義Google Closure Compiler的參數類型?

什么是最佳做法?

我已經測試了幾種方法,但沒有一種方法適合我。

沒有這個,我們的項目將無法正確編譯,所以我們需要這個,謝謝

謝謝

arguments不是一個數組(它是一個類似數組的對象),因此它不包含方法slice 您可以嘗試: var args = [].slice.call(arguments,1); 換句話說,為arguments Array.slice調用Array.slice -method來創建一個真正的Array 要在瀏覽器控制台中測試運行此代碼:

function foo(){
  console.log([].slice.call(arguments,1));
}
foo(1,2,3); //=> logs [2,3]

也可以看看

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM