我有以下代码,但收到错误Uncaught TypeError: Object #<addThis> has no method 'returnValue' (anonymous function)
function addThis() {
this.value1 = 1;
this.value2 = 2;
var returnValue = function () {
return (this.value1 + this.value2);
}
}
//Instantiate object and write response
var simpleObject = new addThis();
document.write(simpleObject.returnValue());
答案 0 :(得分:1)
当您使用this.
时,范围内的公开。当您使用var
时,它是私有。因为您使用了var returnValue
,所以它是私有的,因此不会公开使用。
事实上,我猜你想隐藏价值并暴露吸气剂,所以要扭转你所做的......
function addThis() {
var value1 = 1;
var value2 = 2;
this.returnValue = function () {
return (this.value1 + this.value2);
}
}
答案 1 :(得分:1)
var
将声明函数的局部变量。我认为您打算将其分配给this.returnValue
:
function addThis() {
this.value1 = 1;
this.value2 = 2;
this.returnValue = function () {
return (this.value1 + this.value2);
};
}
// Instantiate object and write response
var simpleObject = new addThis();
document.write(simpleObject.returnValue());
答案 2 :(得分:1)
因为returnValue
只是addThis
函数中的局部变量,所以它不会最终出现在创建的对象中。
将函数分配给对象的属性:
function addThis() {
this.value1 = 1;
this.value2 = 2;
this.returnValue = function() {
return this.value1 + this.value2;
};
}
或者使用原型作为对象:
function addThis() {
this.value1 = 1;
this.value2 = 2;
}
addThis.prototype.returnValue = function() {
return this.value1 + this.value2;
};