2015-12-22 95 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