为什么不允许方法作为对象键/值?

时间:2016-09-05 14:24:13

标签: 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 = {
   n:"d" //no error
};

即使typeof a.btypeof n返回的功能与函数相同吗?

2 个答案:

答案 0 :(得分:2)

虽然看起来很奇怪,但如果你记录myobj.c,我希望你能得到一个结果。使用es6,您可以执行以下操作:



var a = function(){
    this.b = function()
    {
        return "c";
    }
};


var myobj = {
   [a.b()]:"d" 
};

console.log(myobj.c); // d




但你为什么要这样做?

答案 1 :(得分:1)

我猜你在尝试这样的事情?

var myobj = {
   "d": a.b
};

然后myobj.d()或@baao已经回答了另一种可能性?