簡體   English   中英

有沒有辦法在javascript中動態給匿名函數命名?

[英]Is there a way to dynamically give an anonymous function a name in javascript?

我要執行此操作的原因有點復雜,但總而言之,您可以執行window[myString]=function hello(){} 有沒有辦法做var hello=function [myString](){}


我想要這樣做的原因是因為我正在用javascript創建類生成器。 問題是,我只能命名分配給構造函數的變量,而實際上不能命名類本身。 因此,如果實例化我生成的類的一堆實例,則chrome dev工具不知道該實例是什么,因此它將調用對象(匿名函數)而不是其類名。 這確實讓我感到煩惱。

這是我要執行的操作的示例。 復制並粘貼到Chrome的開發工具中:

function Person(name){this.name=name;};
Person.initChildClass=function(className,talkMethod){
    window[className]=function(){Person.apply(this,arguments)}
    window[className].prototype.talk=talkMethod;
}
Person.initChildClass("PoliceMan",function(){alert("I am a police man")});
Person.initChildClass("LittleBoy",function(){alert("googoogaagaa");});
var cop=new PoliceMan("Bob");
cop;

將我的代碼復制並粘貼到開發工具(Chrome)中,您會看到它顯示window。(匿名函數),而不是警察的“ Cop”。 我如何說“警察”?

嘗試

func.displayName = "whatever";

但可能並非在所有瀏覽器中都可以使用。 參見Function.displayName :和Chromium中的相同內容

暫無
暫無

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

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