当我运行以下代码时:
function eatingFood(food){
this.food = food;
return 'I"m eating' + this.food;
}
var apple = new eatingFood("apple");
console.log(apple());
我收到以下错误:
apple不是函数错误。
为什么会这样?
答案 0 :(得分:0)
要使当前代码正常工作,您需要做一些事情。
function eatingFood(food){
this.food = food;
return function () {
return 'I"m eating ' + this.food;
};
}
var apple = eatingFood("apple");
console.log(apple());

如果你真的打算创建一个对象,那么你可以很好地使用以下格式。
function eatingFood(food){
this.food = food;
this.toString = function () {
return 'I"m eating ' + this.food;
};
}
var apple = new eatingFood("apple");
console.log(apple.toString());

答案 1 :(得分:-1)
使用new
关键字,var apple
将是一个看似{food: 'apple'}
的对象。
而且......好吧......你不能在对象的末尾放两个括号,因为对象不是函数!