![](/img/trans.png)
[英]Javascript: Checking if function exists in sibling frame before calling
[英]Javascript Finding if Function/Class exists before calling it
我知道如何檢查全局上下文的屬性是否存在。 的任何變化
if (typeof myFunction != 'undefined'){...}
但是如果我不知道 function 的名稱怎么辦? 我認為在全球范圍內我可以做到這一點
if (typeof this['myFunction'] != 'undefined'){...}
但我不知道如何在這樣的 function 中做到這一點
function load(functionName){
if (typeof GLOBALCONTEX[functionName] != 'undefined'){
GLOBALCONTEX[functionName](arg1 , arg2 , ...);
}
}
而且我不想使用 try/catch,因為我聽說它很慢。
如果使用瀏覽器,請將GLOBALCONTEX
替換為window
。 例子:
function load(functionName){
if (typeof window[functionName] != 'undefined'){
window[functionName](arg1 , arg2 , ...);
}
}
在瀏覽器中,全局 object 是window
[docs] 。 如果您使用另一個 JavaScript 執行環境(如 Node.js),請查看其文檔以找出全局 object 的名稱/引用。
當然,這樣的測試僅適用於全局 scope 中定義的功能,而不適用於任何更高版本的 scope。 因此,可能是這樣的 function 可用(並且可訪問),但它不在全局 scope 中。
全局上下文是 window。 所有對象都附在它上面。
function load(functionName){
if (typeof window[functionName] != 'undefined'){
window[functionName](arg1 , arg2 , ...);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.