如何创建作用域的动态,基于实例的对象文字

时间:2012-07-30 22:54:28

标签: javascript

在谷歌和帖子没有任何帮助后,这是我的猜测:

var MC = {};
MC.o_p = function ( type ) {
    return {
        model  :  type,
        result :  'continue',
        page   :  {},
        args   :  {},
        server :  {},
        hash   :  localStorage.hash
    }
};

我称之为

var obj1 = MC.o_p( 'MUserTry' );

这里对象o_p是“作用域”到MC。您可以通过上面的调用创建多个实例。字符串MUserTry作为变量类型传入,并设置为对象属性模型。

这会有用吗?我暂时从试验和错误中休息一下,但我需要的是能够创建具有多个实例的特定表单的对象文字。

相关

How to create global, instance based objects from local scope?

1 个答案:

答案 0 :(得分:1)

您无法确定结果对象的范围。 o_p属性是对象的成员,但该函数返回的对象不是。

对象文字只是用于创建对象的{ ... }语法,因此您要做的是创建一个对象,而不是对象文字。 (通过将对象文字的代码放在字符串中并执行字符串来创建对象文字。)

您滥用构造函数,但它会起作用。将创建一个对象,并且将调用该函数对其进行初始化,然后该对象将被丢弃并由函数返回的对象替换。

只需删除new关键字,即可进行常规函数调用,并返回该对象。