创建

时间:2015-12-22 14:17:59

标签: javascript

我希望在函数应用为new时获取参数名称。我有搜索,但我找不到我正在寻找的东西。

以下是一个示例;

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();

2 个答案:

答案 0 :(得分: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的当前索引。

答案 1 :(得分:-2)

该对象具有属性,这是语法。

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

var param = myObject.name;

这是您定义属性的方式。