javascript - 获取对象内部的正确函数

标签 javascript

在此代码中,第 15 行 “this”指针指的是套接字而不是我的对象网络。我应该怎么做才能真正获取网络对象?很抱歉这个“菜鸟”问题,但我在谷歌上搜索了一段时间,我什至不知道该输入什么来找到答案。

var Network = function(ip, port){
  this.host = "ws://"+ip+":"+port;
  this.socket = new WebSocket(this.host);
  this.socket.binaryType = "arraybuffer";
  var ByteBuffer = dcodeIO.ByteBuffer;

  this.socket.onopen = function(){
    console.log('Connected to the WebSocket server');
  };

  this.socket.onmessage = function(e){
    var bytearray = new Uint8Array(e.data);
    switch(bytearray[0])
    {
    case 2: this.handleLoginAnswer(bytearray); break; //line 15 
    default:
      alert("received a wrong packet")
    }
  };

  this.handleLoginAnswer = function(packet){
    var bytearray = new Uint8Array(e.data);
    var reader = ByteBuffer.wrap(bytearray);
    var opcode = reader.readUint8();

    if(opcode != 2)
      return;

    var result = reader.readUint8();
    switch(result){
      case 1: displayValidate("Sucessfully registered"); break;
      case 2: displayError("Username is already taken"); break;
      case 3: displayError("Email is already taken"); break;
    }

    function displayValidate(message){
      $("#register-messagebox").html("<div class=\"alert-message\" style=\"background-color:#27ae60;\">" + message + "</div>");
    }

    function displayError(error){
      $("#register-messagebox").html("<div class=\"alert-message\" style=\"background-color:#e74c3c;\">" + error + "</div>");
    }
  }
}

最佳答案

放置:

var self = this;  // or other name to suit

当您需要该对象时,请参阅self

关于javascript - 获取对象内部的正确函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22331827/

相关文章:

javascript - localStorage.getItem(...).key 不是函数

javascript - 使用 ng-repeat 时了解 Angular 布局

javascript - 如何在不裁剪的情况下保存图像?

javascript - 使用 JavaScript 拆分字符串

javascript - 父子 Controller 的 Angular JS 错误

javascript - Angular JS ng-click 不适用于 ng-repeat 之类的过滤器

为旧浏览器应用 CSS 的 Javascript 库

javascript - 函数参数对象解构导致 undefined variable

javascript - 在 D3.js 中重新排序 SVG ( z-index ) 的元素

php - 对每个检查的元素执行函数