Javascript 为什么我不能调用{}.anymethod,而我可以调用[].anymethod?

Javascript 为什么我不能调用{}.anymethod,而我可以调用[].anymethod?,javascript,object,Javascript,Object,例如,如果我们这样做: Array.prototype.method = () => { console.log("method") } 然后我们可以简单地称之为: [].method() // works 但在对象的情况下: Object.prototype.method = () => { console.log("method") } 我们得到: {}.method() // doesn't work Object.method() // works 因为{}被解释为空

例如,如果我们这样做:

Array.prototype.method = () => { console.log("method") }
然后我们可以简单地称之为:

[].method() // works
但在对象的情况下:

Object.prototype.method = () => { console.log("method") }
我们得到:

{}.method() // doesn't work
Object.method() // works

因为
{}
被解释为空块而不是对象。通过将其用括号括起来解决此问题:


Object.prototype.method=()=>console.log(“方法”);

({}).method()但如果你的答案是arraythanks,这对我很有帮助。但对于数组,我不需要在@jackbashfordyes处加括号,因为
[]
被视为数组文本。在我的回答中,我也从来没有提到过它们需要放在方括号内。