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

How to create dynamic, instance based, object literals that are scoped

本文关键字:动态 对象 文字 基于实例 作用域 何创建 创建      更新时间:2024-05-28

在没有通过谷歌和帖子获得帮助后,这是我的猜测:

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作为变量类型传入,并设置为对象属性模型。

这行得通吗?我现在正从试错中解脱出来,但我需要的是能够创建具有多个实例的特定形式的对象文字。

相关

如何从本地范围创建全局的、基于实例的对象?

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

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

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

只需删除new关键字,就可以进行常规函数调用,它将返回对象。