我刚刚在JavaScript中遇到了一个有趣的情况。我有一个类,它的方法使用对象文字表示法定义了几个对象。在这些对象中,正在使用this
指针。从程序的行为中,我推断this
指针指向调用方法的类,而不是由字面量创建的对象。
这似乎是随意的,尽管这是我所期望的工作方式。这是已定义的行为吗?它跨浏览器安全吗?是否有任何潜在的原因,为什么它会超出“规格说明”(例如,这是一些更广泛的设计决策/哲学的结果)?简化后的代码示例:
// inside class definition, itself an object literal, we have this function:
onRender: function() {
this.menuItems = this.menuItems.concat([
{
text: 'Group by Module',
rptletdiv: this
},
{
text: 'Group by Status',
rptletdiv: this
}]);
// etc
}