对象不支持此操作'当“newing"嵌套的Javascript对象实例

"Object doesn't support this action" when "newing" a nested Javascript object instance

本文关键字:对象 实例 quot Javascript 嵌套 newing 不支持 操作      更新时间:2023-09-26

我在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

抛出的错误是"对象不支持此操作"…我已经审查了下面的帖子,除非我错过了什么,我觉得代码是正确的。我是不是忽略了什么?

定义一个"嵌套"的对象构造函数在JavaScript?

在javascript中实例化新对象

在最简单的情况下:

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

但在上述情况下由于吊装而失败。

引用

  • JavaScript变量提升细节

  • Javascript提升的危险示例

  • JavaScript is Hard Part 2: The Hidden World of hoist |平台性