【问题标题】:JS creating object in object with constructorJS用构造函数在对象中创建对象
【发布时间】:2016-07-01 15:59:36
【问题描述】:

我在将属性分配给使用构造函数 INSIDE 其他函数创建的对象时遇到问题

   var something = {
    property1: 'sth',
    object: new Object()
    }

它可以在对象内部创建对象,但是每次我尝试将属性分配给对象内部的对象时,例如

var something = {
    property1: 'sth',
    object: new Object(),
    object.property: 'anything'
    }

它显示错误,未捕获的语法错误:意外令牌。 , albo 尝试使用 object['property'] 但显示“意外令牌 [”,那么我该如何分配它?

【问题讨论】:

    标签: javascript oop properties


    【解决方案1】:

    您可以分两步完成:

    var something = {
      property1: 'sth',
      object: new Object(),
    };
    
    something.object.property = 'anything';
    

    或者使用Object.assign将属性合并到创建的对象中:

    var something = {
      property1: 'sth',
      object: Object.assign(new Object(), {
        property: 'anything',
      }),
    };
    

    当然,如果是创建对象的人(与创建对象的某些第三方函数相反),则无需使用new Object。也只需使用对象字面量即可。

    【讨论】:

    • 为什么不object: { property: 'anything' }
    • 我认为new ObjectsomeThirdPartyFunctionCreatingAnObject() 之类的占位符。
    猜你喜欢
    • 1970-01-01
    • 2019-12-21
    • 1970-01-01
    • 2011-05-22
    • 2012-02-05
    • 1970-01-01
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多