在JavaScript中定义类

时间:2011-04-01 02:02:25

标签: javascript

我一直在阅读面向对象的JavaScript。这是我一直在阅读的链接 Introduction to Object-Oriented JavaScript 。但是,我也一直在阅读 Practical CakePHP Projects 这本书。我试图弄清楚为什么他们使用类来定义类?根据我的阅读,您应该使用function关键字定义类。下面的代码是本书的一个例子。如果作者错了,或者我有什么遗漏?

var TravelMapprManager = Class.create({

    //Constructor
    initialize: function(map_container) {
        this.map_container = map_container;

        //Start the map.
        Event.observe(window, 'load', this.displayMap.bind(this));

        //Observe the map buttons.
        Event.observe(document, 'dom:loaded', this.initObservers.bind(this));
    },

2 个答案:

答案 0 :(得分:7)

Class不是关键字。它是库代码的命名空间,包含create函数,用于设置构造函数(您提到的函数)和prototype

您可以在此特定库的文档中阅读有关它的更多信息:http://api.prototypejs.org/language/Class/create/

  

Class.create创建一个类并返回该类实例的构造函数。调用构造函数(通常作为new语句的一部分)将调用类的initialize方法。

答案 1 :(得分:1)

我想知道他们是否在你正在阅读的书中使用了一些图书馆?这可能会回答你的直接问题。

以下是一个非常快速的示例(希望是正确的,因为我没有对它进行测试,但它应该让您知道)您正在尝试做什么(刚刚发现这可能会有所帮助:http://www.phpied.com/3-ways-to-define-a-javascript-class

function TravelMapprManager() {
}

TravelMapprManager.prototype.initialize = function(mapContainer) {
    this.mapContainer = mapContainer;

    ...
};

var mappr = new TravelMapprManager();
mappr.initialize(...);