gpt4 book ai didi

Javascript OOP,类中类,出现错误 "is not a constructor",为什么?

转载 作者:行者123 更新时间:2023-11-28 20:27:32 27 4
gpt4 key购买 nike

我只是在玩一些 javascript OOP,只是为了好玩,但我收到了一个错误...

我正在尝试在一个类中创建类,但不知道它是否可行..

谁能让我走上正确的道路......

在这里查看我的问题:http://jsfiddle.net/wBZ4r/2/

function MyClass() {
var server;

this.__init__ = function() {
this.server = new this.Server();
console.log(this.server.url);
}();

/* -------- Server Class ------------------ */
this.Server = function() {
var url;
this.__init__ = function() {
this.url = "server/test.json";
}();

this.connect = function() {
console.log(this.url);
};
};
}(window.myclass = new MyClass());

出现此错误:“this.Server 不是构造函数”

希望这是有道理的!

最佳答案

主要问题是您没有从第一个闭包中返回函数。但除此之外,您在这里尝试做的事情存在很多问题。下面是一个更传统的 Class 样式的示例。在示例中,我使用第一个类实例化第二个 (Server) 类。

http://jsfiddle.net/wBZ4r/5/

/**
closure to prevent others from accessing
*/
(function() {
/**
Server class
*/
function Server() {
this.url = "/some/url";
}

/**
Server prototype, defines connect function
*/
Server.prototype = {
connect: function() {
console.log(this.url);
}
}

/**
MyClass
*/
function MyClass() {
/**
MyClass instansiates a new Server
*/
this.server = new Server();
};

var thing = new MyClass();
thing.server.connect();
})();

关于Javascript OOP,类中类,出现错误 "is not a constructor",为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17096371/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com