[英]unexpected identifier error when declaring object literal
为了完成一个简单的node.js练习,我对此进行了多种尝试。 我怀疑我缺少一些非常简单的东西。
我创建var Calc的原因是因为我想导出'calculator'函数。
错误:
/Users/alex/zdev/react-project/calc.js:4
var add = function(){
^^^
SyntaxError: Unexpected identifier
文件calc.js :(为简化起见,文件已缩短)
var readline = require('readline-sync');
var Calc = {
var add = function(){
var num1 = readline.question("num1: ");
var num2 = readline.question("num2: ");
console.log(num1 + num2);
};
}
module.export = Calc;
调用文件:
var calc = require('./calc');
var Calc = new calc.Calc();
Calc.add();
Calc.sub();
Calc.divide();
您使用函数add
定义了一个新对象Calc
,但是语法不正确。 正确的语法是:
var Calc = {
add: function() {
var num1 = readline.question("num1: ");
var num2 = readline.question("num2: ");
console.log(num1 + num2);
}
};
如果要使构造函数起作用(我的意思是从语法上来说),则应这样做:
function Calc() {
}
Calc.prototype.add = function() {
var num1 = readline.question("num1: ");
var num2 = readline.question("num2: ");
console.log(num1 + num2);
};
module.exports = Calc;
然后像这样导入:
var Calc = require('./calc');
var calc = new Calc();
calc.add();
calc.sub();
calc.divide();
但我更希望您使用ES6类语法,并且Calc构造函数将如下所示:
class Calc {
constructor() {}
add() {
var num1 = readline.question("num1: ");
var num2 = readline.question("num2: ");
console.log(num1 + num2);
}
}
module.exports = Calc;
我建议使用ECMAScript 2015中引入的JavaScript类
class Calculator {
constructor() {
console.log("[Calc] created!");
}
static add(a, b) {
return a+b;
}
}
let Calc = new Calculator();
解决方法如下:
通话档案:
var calc = require('./calc');
var Calc = calc.Calc;
Calc.add();
Calc文件:
var Calc = {
add: function(){
var num1 = readline.question("num1: ");
var num2 = readline.question("num2: ");
console.log(num1 + num2);
},
divide: function(){
var num1 = readline.question("num1: ");
var num2 = readline.question("num2: ");
console.log(num1 / num2);
},
sub: function(){
var num1 = readline.question("num1: ");
var num2 = readline.question("num2: ");
console.log(num1 - num2);
}
}
module.exports = {Calc:Calc}
以下几行是原始错误所在:
从其他函数导入后定义我的班级
Calc = calc.Calc;
使用逗号分隔对象属性而不是分号
},
没有在模块导出中定义字典。 另外,我最初写的是“ module.export”而不是“ module.exports”
module.exports = {Calc:Calc}
而且我忘了将parseInt()用作num1和num2值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.