我正在使用Javascript Object文字,但我无法连接字符串属性。
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
请帮忙, 提前致谢
答案 0 :(得分:4)
您无法以这种方式访问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"
};
}();
答案 1 :(得分:1)
问题不是在对象的上下文中连接,而是你正在寻找的 this 还不存在。一个简单的解决方案可能看起来像 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";
};
答案 2 :(得分:0)
变量“this”是Window的一个实例,因此你不能将“this”用作“cart”