JavaScript如何在名称空间中拥有类

JavaScript如何在名称空间中拥有类,javascript,Javascript,我想在我的命名空间中定义一个类类型,但我想不出如何做到这一点,以便'this'命令引用类的实例,而不是命名空间的'this' 如果我提供一个我需要这样做的例子,这将更有意义。我正在创建一些JavaScript代码,将所有表单转换为通过Ajax提交,然后如果Ajax请求失败,它会在一段时间后再次尝试提交表单。这样的想法是,如果用户的互联网连接中断,页面仍然可以工作 代码 使用上面的代码,我可以做我想做的事情 var request1 = new Request("www.example.com",

我想在我的命名空间中定义一个类类型,但我想不出如何做到这一点,以便'this'命令引用类的实例,而不是命名空间的'this'

如果我提供一个我需要这样做的例子,这将更有意义。我正在创建一些JavaScript代码,将所有表单转换为通过Ajax提交,然后如果Ajax请求失败,它会在一段时间后再次尝试提交表单。这样的想法是,如果用户的互联网连接中断,页面仍然可以工作

代码

使用上面的代码,我可以做我想做的事情

var request1 = new Request("www.example.com", { value: 1 }, "get");
var request2 = new Request("www.anotherurl.com", { value: 2 }, "get");
AjaxStack.push(request1);
AjaxStack.push(request2);
如何将Request类放在AjaxStack名称空间中,以便执行类似的操作

var request1 = new AjaxStack.Request("www.example.com", { value: 1 }, "get");
var request2 = new AjaxStack.Request("www.anotherurl.com", { value: 2 }, "get");
AjaxStack.push(request1);
AjaxStack.push(request2);
您可以这样做:

var AjaxStack_f = function () {}

AjaxStack_f.prototype.Request = function(url, data, method) {
    this.url = url;
    this.data = data;
    this.method = method;
}
然后你可以说:

var AjaxStack = new AjaxStack_f();
var request1 = new AjaxStack.Request("www.example.com", { value: 1 }, "get");

如果
这个
请求
构造函数中的错误对象,您不会有问题,因为您使用
new
调用构造函数

是否只有我发现“将请求推到堆栈上”语法有点奇怪?应该是
AjaxStack\u f.prototype.push=function(request){…}
?您是对的,很抱歉输入错误。这正是我想要做的。干杯,感谢您对“新”的了解。在接受这个答案之前,我会先给出答案。
var AjaxStack = new AjaxStack_f();
var request1 = new AjaxStack.Request("www.example.com", { value: 1 }, "get");