SyntaxError:javascript中的意外的token() - 关闭?

时间:2017-08-17 05:32:55

标签: javascript closures

我是Javascript的新手,试图在Javascript中学习封装的概念 - getter/setter。但是,我遇到了编译/解释器问题。 我已经关注了一个链接,但我无法弄清楚是什么错误。

我的理解是正确的,这是从闭包函数返回一个对象。这个对象有两个方法 - getter和setter。但是,我在这里得到编译/翻译。这里的问题是什么?请你点亮一下。我正在使用webstorm编辑器。



function testConcept() 
{
  var testID = 1000;

  return 
  {
    getID: function() 
    {
      return testID;
    },

    setID: function(newTestID) 
    {
      testID = newTestID;
    }
  }
}

var test = testConcept();
console.log(test.getID());
test.setID(2009);
console.log(test.getID());




这是错误

      getID: function()
                       ^
SyntaxError: Unexpected token (
    at Module._compile (module.js:439:25)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:902:3

1 个答案:

答案 0 :(得分:4)

object's语句的行上向上移动{大括号return

 // this is returing an object
return {

Javascript会在;语句后自动放置return,因此您会收到错误消息。设置逗号后,您会收到类似return ;的内容,然后是object's正文,所以这是错误。



function testConcept()
{
    var testID = 1000;
    
    return {
        getID: function()
        {
            return testID;
        },
        setID: function(newTestID)
        {
            testID = newTestID;
        }
    }
}

var test = testConcept();
console.log(test.getID());
test.setID(2009);
console.log(test.getID());