【发布时间】:2014-09-23 13:20:10
【问题描述】:
我用 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 中定义的通用函数来初始化我的属性,该函数也可以从除初始化之外的许多其他地方调用?
【问题讨论】:
-
在调用它之前尝试声明
getID。 -
把
this.attribID = this.getID(id);放在函数定义之后。 -
@HenriqueBarcelos——如果使用函数声明,它可以在范围内的任何地方,它不必在“之前”被调用。但是,由于 OP 使用了function expression,因此它必须在调用之前,因为在执行分配的语句执行之前不会发生分配。
-
@RobG 是的,你说得对,我应该解释得更好。
-
@RobG :感谢您的精确。你能开发一下吗,我不确定你的意思是“如果使用函数声明,它可以在范围内的任何地方”,我并没有真正与 Javascript 一起使用
标签: javascript oop methods attributes initialization