你如何用 Javascript 编写一个类? [复制]
Posted
技术标签:
【中文标题】你如何用 Javascript 编写一个类? [复制]【英文标题】:How do you write a class in Javascript? [duplicate] 【发布时间】:2010-10-29 23:37:08 【问题描述】:可能重复:What's the best way to define a class in javascript
你如何用 Javascript 编写一个类?有没有可能?
【问题讨论】:
确认。 “javascript”被编辑为“Javascript”而不是“JavaScript”。 我更喜欢 jAvAsCrIpt。这是正确的方法。 【参考方案1】:好吧,JavaScript 是一种基于原型的语言,它没有类,但您可以通过对象克隆和原型设计来进行经典继承,以及其他行为重用模式。
推荐文章:
Introduction to Object-Oriented JavaScript JavaScript Classical Inheritance JavaScript Private Members Class-Based vs. Prototype-Based Languages【讨论】:
【参考方案2】:function Foo()
// constructor
Foo.prototype.bar = function()
// bar function within foo
【讨论】:
我认为你在bar
的开头有一个额外的“功能”。 :-)
是的。另外,别忘了提到你必须使用 new Foo()。
哎呀修复了,我不习惯写 javascript oo。【参考方案3】:
Javascript 默认使用基于原型的 OO。
但是,如果您使用原型库,例如,您可以使用 Class.create()。
http://prototypejs.org/api/class/create
它可以让你创建(或继承)一个类,然后你可以用 new 实例化它的实例。
其他图书馆可能也有类似的设施。
【讨论】:
有的。 jQuery 没有,因为它预计您将更有可能处理 jQuery 集合而不是类。【参考方案4】:如果您使用原型或 jQuery 之类的库,它会容易得多,但传统的方法是这样做。
function MyClass()
MyClass.prototype.aFunction()
var instance = new MyClass();
instance.aFunction();
您可以在此处阅读更多内容http://www.komodomedia.com/blog/2008/09/javascript-classes-for-n00bs/
【讨论】:
【参考方案5】:“有点”可能。 Prototype 有一些在 JS 中编写类的内置帮助。看看this thorough description,你是如何做到的。
var namedClass = Class.create(
initialize: function(name)
this.name = name;
getName: function()
return this.name;
);
var instance = new namedClass('Foobar');
【讨论】:
【参考方案6】:JavaScript 基于对象,而不是类。它使用原型继承,而不是经典继承。
JavaScript 具有延展性并且易于扩展。因此,有许多库为 JavaScript 添加了经典继承。但是,使用它们可能会导致编写大多数 JavaScript 程序员难以遵循的代码。
【讨论】:
以上是关于你如何用 Javascript 编写一个类? [复制]的主要内容,如果未能解决你的问题,请参考以下文章