如果我在prototype.js中声明了一个类
var ClassFoo = Class.create();
ClassFoo.prototype = {
initialize: function() {
},
type: 'ClassFoo'
};
如果我声明一个方法ClassFoo.doBar = function(){log(“foobar”)}
是否与在java中创建静态方法相同/等效?
classfoo的对象可以访问doBar()吗?
答案 0 :(得分:1)
是的,构造函数上的方法类似于其他OOP语言中的静态方法。它们可以全局使用(或者在构造函数的任何范围内定义),并且不与该对象的任何特定实例相关联(这几乎与静态方法相同)。
项目中任何位置的任何代码都可以ClassFoo.doBar()
访问它们。您ClassFoo
的方法也可以通过这种方式访问它。没有其他快捷方式可以访问它们(即使是方法)。
要记住的一件事是Javascript中的函数是对象,并且可以像Javascript中的任何其他对象一样具有属性。所以,分配:
ClassFoo.doBar = function() {...};
只是为ClassFoo对象赋予一个属性,它可以像任何对象上的任何属性一样使用。
ClassFoo.doBar();