我有一个像这样的对象cats
:
var model = {
cats: [
{
name: "Fossie",
url: "",
count: 0
},
{
name: "Bootsie",
url: "",
count: 0
}
],
currentCat: cats[0], //error here
}
当我尝试访问cats[0]
时,出现以下错误:ReferenceError: cats is not defined
如果我将cats[0]
替换为this.cats[0]
,我会收到此错误:Uncaught TypeError: Cannot read property '0' of undefined
是否无法访问同一对象中的对象属性?或者我应该在model
内创建一个函数并在那里初始化currentCat
吗?
答案 0 :(得分:2)
不,这是不可能的。试试这个:
var model = {
cats: [
{
name: "Fossie",
url: "",
count: 0
},
{
name: "Bootsie",
url: "",
count: 0
}
]
}
model.currentCat = model.cats[0];
您无法在初始化对象之前使用该对象 - 因此,在您尝试设置currentCat
的位置时,您仍然在内部'初始化,你的模型无法访问。
在此代码之后,模型将如下所示:
model = {
cats: [
{
name: "Fossie",
url: "",
count: 0
},
{
name: "Bootsie",
url: "",
count: 0
}
],
currentCat: {
name: "Fossie",
url: "",
count: 0
}
}
答案 1 :(得分:1)
您可以存储当前cat的索引(并使用preg_match_all('#(.*\(\([0-9\.]+,[0-9\.]+\)\).*?)#',$lines,$match);
访问函数中的属性):
this
答案 2 :(得分:-1)
不要在模型中使用它。在猫定义后使用它。
var model = {
cats: [
{
name: "Fossie",
url: "",
count: 0
},
{
name: "Bootsie",
url: "",
count: 0
}
],
// currentCat: cats[0], //error here
}
model.currentCat = model.cats[0];
希望这对你有好处