我知道这是一个非常愚蠢的问题,但不知道为什么这不起作用:
this.getPageName = function(pagenum){
var name;
if(pagenum==1){
this.name='1.page1';
}
else if(pagenum==2){
this.name='2.page2';
}
else if(pagenum==3){
this.name='3.page3';
}
else if(pagenum==4){
this.name='4.page4';
}
console.log("pagenum: " + pagenum);
console.log("tabname: " + name);
return name;
}
var page=3;
var pagename=getPageName(page);
console.log(pagename);
我想 console.log(pagename);
会有 3.page3
,但输出是 undefined
。
有什么问题吗?那里一定有一些范围错误。
最佳答案
去掉函数中的this.name
。它不引用函数,而是引用 window
对象;也就是说,this.name
不是函数内部的变量name
。
this.getPageName = function(pagenum){
var name;
if(pagenum==1){
name='1.page1';
}
else if(pagenum==2){
name='2.page2';
}
else if(pagenum==3){
name='3.page3';
}
else if(pagenum==4){
name='4.page4';
}
console.log("pagenum: " + pagenum);
console.log("tabname: " + name);
return name;
}
var page=3;
var pagename=getPageName(page);
console.log(pagename);
关于javascript - 为什么下面的 javascript 函数不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18649107/