面向对象javascript:用self函数调用初始化一个属性



我在javascript中创建了这个类:

function MyClass(id) 
{
    this.attribID = this.getID(id);
    // ==========================================================================
    this.getID = function(id) { return ("tooltip_" + id);   }
    // ==========================================================================
}
当我用 从HTML中调用它时
<script>
var a = new MyClass("onecell");
</script>

生成以下错误:this.getID is not a function

我如何用MyClass中定义的泛型函数初始化我的属性,该函数也可以从许多其他地方调用,而不是init一个?

只是澄清一下@RobG的建议

有两种方法。

修改赋值顺序:

function MyClass(id) 
{
    this.getID = function(id) { return ("tooltip_" + id);   }
    this.attribID = this.getID(id);
}

或者使用类原型:

function MyClass(id) 
{
    this.attribID = this.getID(id);
}
MyClass.prototype.getID = function(id) { return ("tooltip_" + id); };

移动this。gettid函数如下:JSFiddle

function MyClass(id) 
{
   // ==========================================================================
   this.getID = function(id) { return ("tooltip_" + id);   }
   // ==========================================================================
   this.attribID = this.getID(id);
}

最新更新