为什么下面的javascript函数不起作用?

Jav*_*ter 2 javascript

我知道这是一个非常愚蠢的问题,但不知道为什么这不起作用:

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);
Run Code Online (Sandbox Code Playgroud)

我想console.log(pagename);会有3.page3,但输出是undefined.

哪里不对了?那里肯定有一些范围错误.

OJa*_*Jay 5

摆脱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);
Run Code Online (Sandbox Code Playgroud)