我正在使用Javascript对象文字,但是我不能连接字符串属性。
var cart = {
baseURL : "http://www.domain.com/",
addURL : this.baseURL + "cart/add",
deleteURL : this.baseURL + "cart/delete",
totalURL : this.baseURL + "cart/total",
// functions
}// cart我得到一个链接作为http://www.domain.com/undefinedcart/add
请帮个忙,提前谢谢
发布于 2013-01-16 01:35:49
您不能以这种方式访问baseURL。这是因为this实际上是window,并且它可能没有baseURL属性。
您可以使用立即调用的函数表达式(IIFE)和闭包:
var cart = function () {
var baseURL = "http://www.domain.com/";
return {
addURL : baseURL + "cart/add",
deleteURL : baseURL + "cart/delete",
totalURL : baseURL + "cart/total"
};
}();发布于 2013-01-16 01:39:03
问题不在于对象上下文中的连接,而在于您正在寻找的this还不存在。一个简单的解决方案可能如下所示
var baseURL = "http://www.domain.com/";
var cart = {
baseURL : baseURL,
addURL : baseURL + "cart/add",
deleteURL : baseURL + "cart/delete",
totalURL : baseURL + "cart/total",
}或者这样:
var cart = new function() {
this.baseURL = "http://www.domain.com/";
this.addURL = this.baseURL + "cart/add";
this.deleteURL = this.baseURL + "cart/delete";
this.totalURL = this.baseURL + "cart/total";
};发布于 2013-01-16 01:39:25
变量"this“是Window实例,因此不能将"this”用作"cart“
https://stackoverflow.com/questions/14343399
复制相似问题