“新建”嵌套的Javascript对象实例时,“对象不支持此操作”

时间:2013-05-20 16:00:49

标签: javascript object instance javascript-objects

我在Javascript中使用嵌套对象创建了一个“命名空间”,并试图“新建”一个javascript对象的实例。

//
// Create the ABC.DTO "namespace"
if (typeof (ABC) == 'undefined') var ABC= { DTO: {} };
//
// Define the ListType object
ABC.DTO.ListType = function (pId, pName) {

    var id   = pId;
    var name = pName;

    return {
        Id: id,
        Name: name
    }
};
//
// Create an instance of the "listType" object
var type1 = new ABC.DTO.ListType(1, 'Letter Type'); // THROWS ERROR

抛出的错误是“对象不支持此操作”...我已经查看了以下帖子,除非我遗漏了一些内容,否则我觉得代码是正确的。我忽略了什么吗?

Define a “nested” object constructor in JavaScript?

Instancing new objects in javascript

1 个答案:

答案 0 :(得分:0)

这适用于最简单的情况:

baz = { foo: {} };
baz.foo.bar = Function;
bop = new baz.foo.bar();

console.log(bop);

稍微复杂的案例:

var baz = { foo: {} };
baz.foo.bar = function(){};
var bop = new baz.foo.bar();

console.log(bop);

但由于吊装而导致上述情况失败。

<强>参考