伙计们,我有那么简单的代码......但它打印未定,但我不知道为什么
function myMove() {
this.pos = 0;
this.right = function() {
fun();
}
function fun(){
this.pos++;
}
}
var move = new myMove();
alert(move.right());
任何帮助???
答案 0 :(得分:0)
您需要从fun()
和this.right
返回值。
function myMove() {
var pos = 0;
this.right = function() {
return fun();
}
function fun(){
return pos++;
}
}
var move = new myMove();
alert(move.right());
答案 1 :(得分:0)
试试这个。
初始化
时,您需要使用pos
而不是this.pos
function myMove() {
pos = 0;
this.right = function() {
return fun();
}
function fun(){
this.pos++;
return this.pos;
}
}
var move = new myMove();
alert(move.right());
答案 2 :(得分:0)
function myMove() {
pos = 0;
this.right = function() {
return fun();
}
function fun(){
return ++this.pos;
}
}
var move = new myMove();
alert(move.right());

在javascript中,需要使用用户return
关键字从函数返回值
也
您必须使用前缀运算符pos++
++pos
运算符
区别在于后缀运算符将首先返回一个值并将其递增 前缀运算符将首先递增值,然后它将处理它