我在javascript中有一个对象:
admins: {
articles: {
path: '/admins/articles',
template: '/views/admins/articles.html',
link: function() {
return path; // !!! how to reference the 'path'?
}
}
}
Run Code Online (Sandbox Code Playgroud)
我有很多像这样的对象,每个对象都有一个path字段和一个link函数.我想用领域path中link,但我不能随便使用path.
我该怎么办?
您可以使用它this来引用该对象.标准的object.method()"点"语法将设置this于object内method:
var someObj = {
admins: {
articles: {
path: '/admins/articles',
template: '/views/admins/articles.html',
link: function() {
return this.path; // !!! how to reference the 'path'?
}
}
}
};
var returnedPath = someObj.admins.articles.link();
Run Code Online (Sandbox Code Playgroud)
(还有其他方法可以调用一个函数,this不会将其设置为适当的对象,但我希望它们不适用于此处 - 你并没有真正说明你是如何使用这些对象或调用函数的,但是如果不按照我展示的方式,请更新您的问题,我会相应地更新我的答案.)
我只是指出你不想在这里使用 ES6 粗箭头,因为在这种情况下不会有this指针:
var someObj = {
admins: {
articles: {
path: '/admins/articles',
template: '/views/admins/articles.html',
link: () => {
return this.path; // 'this' is undefined
}
}
}
};
Run Code Online (Sandbox Code Playgroud)
someObj.admins.articles.link() === 未定义
| 归档时间: |
|
| 查看次数: |
4514 次 |
| 最近记录: |