2015-12-22 90 views
-2

我想在函數應用爲新時獲取參數名稱。我有搜索,但我無法找到我正在尋找什麼。創建對象時的參數名稱

這裏是一個示例;

var myobject = function(){ 
    /*I need "param" in here as string*/ 
} 

var param = new myobject(); 

感謝任何想法或參與沒有任何圖書館。

原始情況下的代碼是:

var selectQueue = []; 
var queue = function(data){ 
    this.defaults = { 
     name: "base", 
     type: "fifo" 
    } 
    this.availableTypes = ["fifo","lifo","random"]; 
    if(!data){data = {};} 
    for(param in this.defaults){ 
     if(!data[param]){ 
      data[param] = this.defaults[param]; 
     } 
    } 

    /*this is what i want to do with dynamic name*/ 
    selectQueue.push({ 
     a:this 
    }); 

} 

var a = new queue(); 
+1

我不明白爲什麼有人給我的問題一個小點。任何人都可以告訴我我做錯了什麼? –

+0

獲取參數的名稱在js中並不是真正的事情,也不是好的做法。我不明白你想用它做什麼,但只需定義一個字符串'var paramString =「param」' – StijnvanGaal

+0

你可以傳遞變量名稱作爲一個強大的,但真的沒有辦法自動獲取它。你爲什麼需要這個? – BurningLights

回答

1

你想要的是不是JS真的有可能,但一個可能的解決方法是給你想給構造函數的名稱,如:

var selectQueue = []; 
var queue = function(data, name){ 
    this.defaults = { 
     name: "base", 
     type: "fifo" 
    } 
    this.availableTypes = ["fifo","lifo","random"]; 
    if(!data){data = {};} 
    for(param in this.defaults){ 
     if(!data[param]){ 
      data[param] = this.defaults[param]; 
     } 
    } 

    var o = {}; 
    o[name] = this; 
    selectQueue.push(o); 
} 

var a = new queue(data, 'a'); 

另一種可能性是跟蹤當前指數selectQueue

+0

感謝您的回答。 –

-2

該對象具有的屬性,這是語法。

var myObject = function(){ 
    name: "your name", 
    age: 19, 
    hobby: "football" 
} 

var param = myObject.name; 

這就是您定義屬性的方式。

+0

我不想定義一個屬性。 –

+0

在這種情況下,我認爲你需要定義構造 – Yya09

+0

你可以做到這一點 – Yya09