Javascript:在成员函数中访问类的成员变量(数组)

时间:2012-10-18 14:31:29

标签: javascript

我正在尝试访问类的成员变量,该类是类的成员函数中的数组但是收到错误:

  

无法读取未定义

的属性'length'

类别:

function BasicArgs(){
  var argDataType = new Uint8Array(1);
  var argData = new Uint32Array(1);
}

会员功能:

BasicArgs.prototype.getByteStreamLength = function(){
  alert(this.argData.length);
  return i;
}

这是其中一个例子,但我在很多地方遇到过这种情况。 像integer这样的变量很容易访问,但大多数时候问题都在于数组。 帮助将不胜感激。

3 个答案:

答案 0 :(得分:3)

您需要this在构造函数中创建对象的属性。

function BasicArgs(){
    this.argDataType = new Uint8Array(1);
    this.argData = new Uint32Array(1);
}

原型函数无法直接访问构造函数的变量范围。

然后一定要使用new来调用构造函数。

var ba = new BasicArgs();

ba.getByteStreamLength();

答案 1 :(得分:0)

您可以访问功能的私人变量

修改后的代码:

   function BasicArgs(){
      this.argDataType = new Uint8Array(1);
     this.argData = new Uint32Array(1);
    }

    BasicArgs.prototype.getByteStreamLength = function(){
       alert(this.argData.length);
        return i;
    }

答案 2 :(得分:0)

声明var argData不会在对象上创建属性。它只是创建一个局部变量,一旦构造函数退出就会消失。你需要做

this.argData = new Uint32Array(1)

代替。