Javascript 如何使用prototype.js创建类
任何人都可以展示一个使用prototype.js创建类的例子以及它的工作原理。除了prototype.js的官方网站之外,还有谁能为prototype.js提供好的例子和教程吗?创建PrototypeJS类与用普通OOP语言创建类非常相似 首先从命名你的类开始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
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低于父类,或者只要父类存在,子类就可以继承它,您就可以在同一文件中创建子类。