Javascript 为什么';是否允许将方法作为对象键/值?
我在试验一些javascript时遇到了一个语法错误。我试图用一个方法返回的值分配一个对象键Javascript 为什么';是否允许将方法作为对象键/值?,javascript,syntax,Javascript,Syntax,我在试验一些javascript时遇到了一个语法错误。我试图用一个方法返回的值分配一个对象键 var a = new function(){ this.b = function() { return "c"; } }; var myobj = { a.b:"d" //Syntax error, unexpected '.' }; 上述操作将抛出一个错误;但是javascript将允许: var n = a.b; var myobj = {
var a = new function(){
this.b = function()
{
return "c";
}
};
var myobj = {
a.b:"d" //Syntax error, unexpected '.'
};
上述操作将抛出一个错误;但是javascript将允许:
var n = a.b;
var myobj = {
n:"d" //no error
};
即使
typeof a.b
和typeof n
返回与函数相同的值?虽然看起来很奇怪,但我希望如果您登录myobj.c
,您希望得到一个结果。使用es6,您可以执行以下操作:
var a=function(){
this.b=函数()
{
返回“c”;
}
};
var myobj={
[a.b()]:“d”
};
console.log(myobj.c);//d
虽然这看起来很奇怪,但如果您登录myobj.c
,我希望您希望得到一个结果。使用es6,您可以执行以下操作:
var a=function(){
this.b=函数()
{
返回“c”;
}
};
var myobj={
[a.b()]:“d”
};
console.log(myobj.c);//d
我想你是在尝试这样的事情吧
var myobj = {
"d": a.b
};
然后
myobj.d()
或@baao已经回答了另一种可能性?我想你是在尝试这样的事情吧
var myobj = {
"d": a.b
};
然后
myobj.d()
或@baao已经回答了另一种可能性?myobj.n
将返回“d”。从es6开始,您可以将变量放入[]
中,以将变量用作对象键。虽然我不认为这是你在本例中想要的。在n:“d”
中的n
是名为n
的属性,与var n=a.b的n
没有任何关系代码>。为什么您希望某个方法成为密钥?或者你是说一个方法的名称作为一个键吗?a.b的返回值意味着成为键的名称,可能是dupe?答案确实相同,但所问的问题有点不同。myobj.n
将返回“d”。从es6开始,您可以将变量放入[]
中,以将变量用作对象键。虽然我不认为这是你在本例中想要的。在n:“d”
中的n
是名为n
的属性,与var n=a.b的n
没有任何关系代码>。为什么您希望某个方法成为密钥?或者你是说一个方法的名称作为一个键吗?a.b的返回值意味着成为键的名称,可能是dupe?答案确实相同,但所问的问题有点不同。myobj.d()????d是一个键值对而不是一个函数检查我的代码段,在这种情况下它是一个函数。是的。忘记了a.b.的类型。。。Sorrymyobj.d()????d是一个键值对而不是一个函数检查我的代码段,在这种情况下它是一个函数。是的。忘记了a.b.的类型。。。很抱歉