我正在尝试学习如何将基本的面向对象概念应用于Javascript.在这里,我只想创建一个类方法,然后在单击<input>元素时从外部调用该方法:
<html>
<head>
<script type="text/javascript">
var Foo = function()
{
}
Foo.prototype.bar = function() { alert("blah"); }
</script>
</head>
<body>
<input type="submit" onclick = "Foo.bar()">
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这不起作用.Firefox给出错误错误:Foo.bar is not a function
但是,如果我Foo()直接打电话,然后从Foo我打电话this.bar(),它工作正常.为什么我无法在Foo.bar()外部调用?
我认为你混淆了所谓的实例方法和类方法.
prototype用于创建实例方法,这些方法属于从prototype与new关键字一起使用时创建的对象:
var foo = new Foo();
foo.bar(); // Will work
Run Code Online (Sandbox Code Playgroud)
我不确定这是你想要的.更有可能的是,你只是想添加一个静态类方法来Foo:
var Foo = {};
Foo.bar = function () { alert('blah'); };
Foo.bar(); // Will work
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
821 次 |
| 最近记录: |