作为JS开发的新内容,我已经开始了OOP,从我的角度来看,它是JS难度更大但也是最有趣的部分。
有我的代码:
var calc = function(num1, num2){
this.num1 = num1;
this.num2 = num2;
this.addNum2 = function(number){
this.num2 = number;
}
}
现在,我正在尝试使用function addNum2
将num2设置为
calc.addNum2(24)
我得到了这个回报:
VM495:1未捕获的TypeError:calc.addNum2不是函数
我只是在这里了解它的工作原理,因此任何帮助都是宝贵的。 谢谢大家!
答案 0 :(得分:3)
您需要使用new operator
function calc(num1, num2) {
this.num1 = num1;
this.num2 = num2;
this.addNum2 = function(number) {
this.num2 = number;
}
}
let newCalc = new calc()
newCalc.addNum2(2)
console.log(newCalc.num2)
或者您需要从函数中返回this
function calc(num1, num2) {
this.num1 = num1;
this.num2 = num2;
this.addNum2 = function(number) {
this.num2 = number;
}
return this
}
let newCalc = calc()
newCalc.addNum2(2)
console.log(newCalc.num2)
我想说:
newCalc.addNum2(4).mutiply(5);
function calc(num1, num2) {
this.num1 = num1;
this.num2 = num2;
this.addNum2 = function(number) {
this.num2 = number;
return this
}
this.multiply = function(number){
this.num2 = this.num2 * number
return this
}
return this
}
let newCalc = calc()
newCalc.addNum2(2).multiply(3)
console.log(newCalc.num2)