我是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
答案 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());