据我了解,在 JavaScript 中创建类有两种方法
var MyObj = function(val)
{
this.vari = val;
}
其中 val 将是非静态成员。
鉴于,
var MyObj = new Object();
MyObj.vari = "";
这是一个单一对象,因此它的成员的行为就像静态成员一样。我的问题是,我们如何在同一个类中同时拥有静态和非静态内容?
最佳答案
JavaScript 中没有类,只有对象。
当您创建一个新对象时,您是从函数的原型(prototype)“扩展”,而不是函数本身。为了使变量或函数看起来是静态的,您必须将其附加到用于创建对象的函数,而不是其原型(prototype)。
js> var Foo = function(){ this.member = "member"; };
js> Foo.staticMember = "staticMember";
js> var f = new Foo();
js> Foo.member;
undefined
js> Foo.staticMember;
"staticMember"
js> f.member;
"member"
js> f.staticMember;
undefined
关于javascript - javascript中同一类(对象)中的静态和非静态数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6217213/