关于“这个”的问题在 JavaScript 中
这可能是一个新手问题。我使用 javascript 已有多年,但才开始“认真”对待它。我有一个关于“this”的问题
var defaults = {
baseId : 'item_',
baseName : this.baseId
}
console.log('defaults',defaults);
不确定为什么 defaults.baseName 是“未定义” 如何引用大括号中的内容?有可能吗,还是我真的必须输入“item_”两次?
This may be a newbie question. I've used javascript for years but have only started to get "serious" about it. I have a question about "this"
var defaults = {
baseId : 'item_',
baseName : this.baseId
}
console.log('defaults',defaults);
Not sure why defaults.baseName is "undefined" How does one reference stuff in the curly braces? Is it possible, or do I really have to type 'item_' twice?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
简单的答案是你无法做你想做的事。在对象字面量的解析/解释/评估(无论您想如何考虑)期间,它不存在,因此不能以任何方式引用它。
The simple answer is that you cannot do what you're trying to do. During the parse/interpretation/evaluation (however you want to think about it) of the object literal, it doesn't exist and so it can't be referred to in any way like that.
JavaScript 对象字面量是一种语法糖,因此它不起作用。
翻译为
您可以使用 getter 和 setter。
JavaScript object literal is a syntatic sugar therefore it does not work.
translates to
You can use getters and setters.
你可以这样做:
You could do this:
您可以使用
function
来代替,创建class
的等效项:现在
this
将具有正确的上下文。另一种选择是使用您的原始代码,将
baseName
设为一个函数:感谢 Šime Vidas 的更正!
You can use
function
instead, creating the equivalent ofclass
:Now
this
will have the proper context.Another option, using your original code, is making
baseName
a function:Thanks Šime Vidas for the correction!