Javascript &引用;这";带参数函数

Javascript &引用;这";带参数函数,javascript,Javascript,我有一个机器人,定义如下。但是由于某种原因,processCommand函数出现了错误,我无法理解它是什么。它是唯一一个接受参数的函数,所以我想知道在readCommands函数中传递参数的方式是否有问题 任何帮助或意见都将不胜感激 function Robot(pos){ this.pos = pos; this.language; this.printCoords = function(){} this.setLanguage = function() {} this.setPos =

我有一个机器人,定义如下。但是由于某种原因,processCommand函数出现了错误,我无法理解它是什么。它是唯一一个接受参数的函数,所以我想知道在readCommands函数中传递参数的方式是否有问题

任何帮助或意见都将不胜感激

function Robot(pos){
this.pos = pos;
this.language;

this.printCoords = function(){}

this.setLanguage = function() {}

this.setPos = function() {}

this.processCommand = function(s){

    var direction = this.pos[2];
    direction = direction.replace(" ", "");

    if( (s.match('V') && this.language.match("svenska")) ||
        (s.match('L') && this.language.match("engelska")) ){
            switch(direction){
                case "N":
                    // Look West
                    this.pos[2] = " W";
                    break;
                case "E":
                    // Look North
                    this.pos[2] = " N";
                    break;
                case "S":
                    // Look East
                    this.pos[2] = " E";
                    break;
                case "W":
                    // Look South
                    this.pos[2] = " S";
                    break;
                default:
                    break;
            }       
    }
    else if( (s.match('H') && this.language.match("svenska")) ||
             (s.match('R') && this.language.match("engelska")) ){
                switch(direction){
                case "N":
                    // Look East
                    this.pos[2] = " E";
                    break;
                case "E":
                    // Look South
                    this.pos[2] = " S";
                    break;
                case "S":
                    // Look West
                    this.pos[2] = " W";
                    break;
                case "W":
                    // Look North
                    this.pos[2] = " N";
                    break;
                default:
                    break;
            }       
    }
    else if( (s.match('G') && this.language.match("svenska")) ||
             (s.match('F') && this.language.match("engelska"))){
            switch(direction){
                case "N":
                    // Walk North
                    this.pos[1] += 1;
                    break;
                case "E":
                    // Walk East
                    this.pos[0] += 1;
                    break;
                case "S":
                    // Walk South
                    this.pos[1] -= 1;
                    break;
                case "W":
                    // Walk West
                    this.pos[0] -= 1;
                    break;
                default:
                    break;
            }           
    }
    this.printCoords();
}

this.readCommands = function() {
    document.getElementById("textField").onkeyup = function(key){

        key = window.event;
        keyCode = key.keyCode || key.which;
        if(keyCode == '13'){
            var commandString = document.getElementById("textField").value;

            for(var i = 0; i < commandString.length; i++){
                this.processCommand(commandString[i]);
            }
        }
    }
}

}
功能机器人(pos){
this.pos=pos;
这种语言;
this.printCoords=function(){}
this.setLanguage=function(){}
this.setPos=函数(){}
this.processCommand=函数{
var方向=此位置[2];
方向=方向。替换(“,”);
if((s.match('V')&&this.language.match('svenska'))||
(s.match('L')和this.language.match('engelska')){
开关(方向){
案例“N”:
//向西看
此.pos[2]=“W”;
打破
案例“E”:
//向北看
此.pos[2]=“N”;
打破
案例“S”:
//向东看
此.pos[2]=“E”;
打破
案例“W”:
//向南看
this.pos[2]=“S”;
打破
违约:
打破
}       
}
else if((s.match('H')和this.language.match('svenska'))||
(s.match('R')和this.language.match('engelska')){
开关(方向){
案例“N”:
//向东看
此.pos[2]=“E”;
打破
案例“E”:
//向南看
this.pos[2]=“S”;
打破
案例“S”:
//向西看
此.pos[2]=“W”;
打破
案例“W”:
//向北看
此.pos[2]=“N”;
打破
违约:
打破
}       
}
else if((s.match('G')&&this.language.match('svenska'))||
(s.match('F')和this.language.match('engelska')){
开关(方向){
案例“N”:
//向北走
这个.pos[1]+=1;
打破
案例“E”:
//向东走
这个.pos[0]+=1;
打破
案例“S”:
//往南走
这个.pos[1]-=1;
打破
案例“W”:
//向西走
此.pos[0]-=1;
打破
违约:
打破
}           
}
这是printCoords();
}
this.readCommands=函数(){
document.getElementById(“textField”).onkeyup=函数(键){
key=window.event;
keyCode=key.keyCode | | key.which;
如果(键代码=='13'){
var commandString=document.getElementById(“textField”).value;
for(var i=0;i
使用旧的that=此技巧:

function Robot(pos){
this.pos = pos;
this.language;

this.printCoords = function(){}

this.setLanguage = function() {}

this.setPos = function() {}


this.processCommand = function(s){

    var direction = this.pos[2];
    direction = direction.replace(" ", "");

    if( (s.match('V') && this.language.match("svenska")) ||
        (s.match('L') && this.language.match("engelska")) ){
            switch(direction){
                case "N":
                    // Look West
                    this.pos[2] = " W";
                    break;
                case "E":
                    // Look North
                    this.pos[2] = " N";
                    break;
                case "S":
                    // Look East
                    this.pos[2] = " E";
                    break;
                case "W":
                    // Look South
                    this.pos[2] = " S";
                    break;
                default:
                    break;
            }       
    }
    else if( (s.match('H') && this.language.match("svenska")) ||
             (s.match('R') && this.language.match("engelska")) ){
                switch(direction){
                case "N":
                    // Look East
                    this.pos[2] = " E";
                    break;
                case "E":
                    // Look South
                    this.pos[2] = " S";
                    break;
                case "S":
                    // Look West
                    this.pos[2] = " W";
                    break;
                case "W":
                    // Look North
                    this.pos[2] = " N";
                    break;
                default:
                    break;
            }       
    }
    else if( (s.match('G') && this.language.match("svenska")) ||
             (s.match('F') && this.language.match("engelska"))){
            switch(direction){
                case "N":
                    // Walk North
                    this.pos[1] += 1;
                    break;
                case "E":
                    // Walk East
                    this.pos[0] += 1;
                    break;
                case "S":
                    // Walk South
                    this.pos[1] -= 1;
                    break;
                case "W":
                    // Walk West
                    this.pos[0] -= 1;
                    break;
                default:
                    break;
            }           
    }
    this.printCoords();
}

var that=this;

this.readCommands = function() {
    document.getElementById("textField").onkeyup = function(key){

        key = window.event;
        keyCode = key.keyCode || key.which;
        if(keyCode == '13'){
            var commandString = document.getElementById("textField").value;

            for(var i = 0; i < commandString.length; i++){
                that.processCommand(commandString[i]);
            }
        }
    }
}

}
功能机器人(pos){
this.pos=pos;
这种语言;
this.printCoords=function(){}
this.setLanguage=function(){}
this.setPos=函数(){}
this.processCommand=函数{
var方向=此位置[2];
方向=方向。替换(“,”);
if((s.match('V')&&this.language.match('svenska'))||
(s.match('L')和this.language.match('engelska')){
开关(方向){
案例“N”:
//向西看
此.pos[2]=“W”;
打破
案例“E”:
//向北看
此.pos[2]=“N”;
打破
案例“S”:
//向东看
此.pos[2]=“E”;
打破
案例“W”:
//向南看
this.pos[2]=“S”;
打破
违约:
打破
}       
}
else if((s.match('H')和this.language.match('svenska'))||
(s.match('R')和this.language.match('engelska')){
开关(方向){
案例“N”:
//向东看
此.pos[2]=“E”;
打破
案例“E”:
//向南看
this.pos[2]=“S”;
打破
案例“S”:
//向西看
此.pos[2]=“W”;
打破
案例“W”:
//向北看
此.pos[2]=“N”;
打破
违约:
打破
}       
}
else if((s.match('G')&&this.language.match('svenska'))||
(s.match('F')和this.language.match('engelska')){
开关(方向){
案例“N”:
//向北走
这个.pos[1]+=1;
打破
案例“E”:
//向东走
这个.pos[0]+=1;
打破
案例“S”:
//往南走
这个.pos[1]-=1;
打破
案例“W”:
//向西走
此.pos[0]-=1;
打破
违约:
打破
}           
}
这是printCoords();
}
var=这个;
this.readCommands=函数(){
document.getElementById(“textField”).onkeyup=函数(键){
this.readCommands = function() {
    var that = this;

    document.getElementById("textField").onkeyup = function(key){

        key = window.event;
        keyCode = key.keyCode || key.which;
        if(keyCode == '13'){
            var commandString = document.getElementById("textField").value;

            for(var i = 0; i < commandString.length; i++){
                that.processCommand(commandString[i]);
            }
        }
    }
}
var self = this;