Javascript 在对象指定中自引用键

Javascript 在对象指定中自引用键,javascript,object,this,Javascript,Object,This,所以我在网上快速浏览了一下,没有发现任何人建议我在代码库中所看到的内容,我想知道我所看到的是一个好主意还是有一些我不知道的可能的副作用 下面的示例与我使用const而不是this看到的示例相同。它或多或少是静态的(没有真正的setter/getter) 建议的解决方案是使用this而不是const const CSS = { something: '.something', getSomethingByAnother: function(another) {return `${this.

所以我在网上快速浏览了一下,没有发现任何人建议我在代码库中所看到的内容,我想知道我所看到的是一个好主意还是有一些我不知道的可能的副作用

下面的示例与我使用
const
而不是
this
看到的示例相同。它或多或少是静态的(没有真正的setter/getter)

建议的解决方案是使用
this
而不是
const

const CSS = {
  something: '.something',
  getSomethingByAnother: function(another) {return `${this.something}*=${another}`;},
};

module.exports = CSS;

我个人更喜欢
this
,而不是变量名,这是一个很好的观点,但由于它已经在代码库中,我想知道为什么我应该保留或重构这种风格。有危险吗?事实上,我给了你一个错误的答案
在第二个示例中,此
不会引用
CSS
,而是引用父上下文,因为arrow函数保留了主范围。要正确使用
this
关键字,您必须执行类似于
GetSomethingByOther(另一个){返回this.something…}
的操作。运行第二个代码段应该会给出
未定义的
。希望帮助您从@ShengSlogar comment中确定
this.something===未定义
const CSS = {
  something: '.something',
  getSomethingByAnother: function(another) {return `${this.something}*=${another}`;},
};

module.exports = CSS;