构造函数的JavaScript输出返回为';未定义';
当我将参数传递到构造函数的JavaScript输出返回为';未定义';,javascript,constructor,return,private,public,Javascript,Constructor,Return,Private,Public,当我将参数传递到console.log()内部的setGear()时,结果返回未定义的,这是为什么?结果应该是我要传递的号码 var Bike = function() { var gear = 2; // private var set to an arbitrary number this.setGear = function(change) { // public method gear = change; }; this
console.log()
内部的setGear()
时,结果返回未定义的,这是为什么?结果应该是我要传递的号码
var Bike = function() {
var gear = 2; // private var set to an arbitrary number
this.setGear = function(change) { // public method
gear = change;
};
this.getGear = function() { // public method
return gear;
};
};
var myBike = new Bike();
console.log(myBike.setGear(4)); // returns undefined, should return 4
console.log(myBike.setGear(3)); // returns undefined, should return 3
console.log(myBike.setGear(1)); // returns undefined, should return 1
不应该返回4
this.setGear = function(change) { // public method
gear = change;
return gear;
};
应该执行如果设置myBike.setGear,则应调用myBike.getGear函数以返回档位;
我的自行车。设置齿轮(4);
console.log(myBike.getGear);
setGear
不返回任何内容,因此undefined
是默认的返回值。setter不应返回任何内容,getter应…@epascarello---正是!也许我应该在发帖前说清楚,这样我的问题就不会被否决了。这段代码来自一个免费的代码训练营练习,该练习旨在演示一个构造函数。我不认为从getGear()
返回有什么意义,但这正是他们提供的。我只是想在node.js中看到结果,所以添加返回或调用myBike.getGear()
@epascarello---我只是想让它按照代码提供的方式工作。我现在看到他们的例子是一个坏例子,我希望在与之抗争之前,我能看到这一点,然后花时间发布我的问题。我就不说了,不过谢谢你的意见,这很有帮助。
this.setGear = function(change) { // public method
gear = change;
return gear;
};