你如何用 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 编写一个类? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

上校教你如何用堆解决Top-K问题

教你如何用C++创建一个特殊的类

你如何用 awk 解析逗号分隔值(csv)?

你如何用 JGit 做相当于“git show tagname”的操作?

教你如何用C语言设计一个有趣的猜数字小游戏

Android | 教你如何用代码一键实现银行卡绑定