JavaScript中的静态方法

时间:2015-02-09 22:57:46

标签: javascript static prototype

如果我在prototype.js中声明了一个类

var ClassFoo = Class.create();
ClassFoo.prototype = {
        initialize: function() {

        },
        type: 'ClassFoo'
};

如果我声明一个方法ClassFoo.doBar = function(){log(“foobar”)}

  1. 是否与在java中创建静态方法相同/等效?

  2. classfoo的对象可以访问doBar()吗?

1 个答案:

答案 0 :(得分:1)

是的,构造函数上的方法类似于其他OOP语言中的静态方法。它们可以全局使用(或者在构造函数的任何范围内定义),并且不与该对象的任何特定实例相关联(这几乎与静态方法相同)。

项目中任何位置的任何代码都可以ClassFoo.doBar()访问它们。您ClassFoo的方法也可以通过这种方式访问​​它。没有其他快捷方式可以访问它们(即使是方法)。

要记住的一件事是Javascript中的函数是对象,并且可以像Javascript中的任何其他对象一样具有属性。所以,分配:

ClassFoo.doBar = function() {...};

只是为ClassFoo对象赋予一个属性,它可以像任何对象上的任何属性一样使用。

ClassFoo.doBar();