Javascript 如何使用prototype.js创建类

Javascript 如何使用prototype.js创建类,javascript,oop,prototypejs,Javascript,Oop,Prototypejs,任何人都可以展示一个使用prototype.js创建类的例子以及它的工作原理。除了prototype.js的官方网站之外,还有谁能为prototype.js提供好的例子和教程吗?创建PrototypeJS类与用普通OOP语言创建类非常相似 首先从命名你的类开始 var myClass = Class.create({ }); 这将创建一个空类-现在用方法填充它,如果您放置一个方法initializePrototypeJS将作为构造函数激发它 var myClass = Class.create

任何人都可以展示一个使用prototype.js创建类的例子以及它的工作原理。除了prototype.js的官方网站之外,还有谁能为prototype.js提供好的例子和教程吗?

创建PrototypeJS类与用普通OOP语言创建类非常相似

首先从命名你的类开始

var myClass = Class.create({ });
这将创建一个空类-现在用方法填充它,如果您放置一个方法
initialize
PrototypeJS将作为构造函数激发它

var myClass = Class.create(
{
    initialize : function()
    {
        this.options = 0;
    }
});
您可以在
initialize()
方法中设置您想要的任何内容,如默认值或只是初始化类的属性。让我们加入一些其他方法,并演示如何实例化该类

var myClass = Class.create(
{
    initialize : function()
    {
        this.options = 0;
    },

    testme : function()
    {
        this.options++;
    },

    showme : function()
    {
        alert(this.options);
        return this.options;
    }
});

var theClass = new myClass();
让我们再进行一步,在方法中调用其他方法,并将选项传递给构造函数

var myClass = Class.create(
{
    initialize : function(option)
    {
        this.options = (option ? option : 0);

        this.testme();
    },

    testme : function()
    {
        this.options++;
    },

    showme : function()
    {
        alert(this.options);
        return this.options;
    }
});

var theClass = new myClass(200);
theClass.showme();

//will alert 201 and return 201
这很酷,但是类继承呢?这在OOP中是一件大事——假设我们有一个单独的类,它是
myClass
的子类。对于要在子类中重写的任何方法,可以将第一个变量作为
$super
传递,该变量将引用同名的父方法-类似于范围解析

var myChildClass = Class.create(myClass,
{
    initialize : function($super,option)
    {
        $super(option);

        // the child class needs option's default value at 150 or whatever is 
        // passed so run the parent initialize first and then redefine the 
        // option property
        this.option = (option ? option : 150);

        // you can still run methods in the parent that are not overridden in 
        // the child
        this.testme();
    }
});

var child = new myChildClass();
child.showme();

//will alert() 151 and return 151
我希望这对你有帮助

下面是一些来自我的github的更复杂的现实世界示例


我们可以仅使用纯html文件中的prototype.js创建类,还是需要任何其他工具的帮助?
class.create()
在PrototypeJS核心库中提供,您不需要任何其他javascript库来实现该方法。我们必须在哪里编写子类函数?在同一html页面或其他页面中?只要新的子类javascript低于父类,或者只要父类存在,子类就可以继承它,您就可以在同一文件中创建子类。