1

我有这个用于设置对象的代码:

myObj.prototype.__init = function(a, b, c){
    this.a = a;
    this.b = b;
    this.c = c;
}

然后在另一个函数中,我想使用方法a中的 I 设置__init

myObj.prototype.myFunc = function(){
    var data = parse(a);
        //...
}

问题aundefined。我也试过this.a了,也有结果undefined。有趣的是,console.log(myO)在执行 avar myO = new myObj();myO.__init(myA, myB, myC);打印带有a初始化字段的对象之后。那么我如何在a我的对象的那个函数中访问呢?

谢谢

编辑:这是对 myFunc 的调用:

someVar = new tccHandler.myObj();
someVar.__init(myA, myB, myC);
someVar.myFunc();
4

2 回答 2

2

我怀疑应该是parse(this.a)

请记住,默认情况下, 的属性不在标识符[this read : variables] 的查找链中;只有“全局对象”(即)的词法变量和属性是。window

a是函数中的变量__init(作为函数参数),它命名的对象被分配给属性 this.a,但a不是函数变量myFunc。每个函数都引入了它自己的词法范围。

快乐编码!

于 2012-04-12T17:30:06.160 回答
0

在普通的 javascript 中,你会这样做:

myObj = function(a,b,c) {
    this.a = a;
    this.b = b;
    this.c = c;
}

演示:

> var x = new myObj(1,2,3);
> x.a;
1
于 2012-04-12T17:30:51.813 回答