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