请高手帮忙注释下。谢谢。
var Class = {
create: function() {
return function() {
this.initialize.apply(this, arguments);
}
}
}
------解决方案--------------------应该是javascript 2.0 吧? 定义一个类
create:function() 表明create是一个函数
这个函数是 返回一个函数
该返回的函数 调用了一个方法 this该对象.initialize.初始化.apply应用(this该对象,arguments参数列表)
说白了 create:function() 是一个类的构造函数之类的(C#)哈哈,愚见,愚见。
其实javascript里面很多内置的函数都不知道,常用的也就六大类函数么。
反正javascript是需要什么的时候就临时定义咯。
使用类的javascript可以编写更友好的脚本了。主要是方便使用者。
------解决方案--------------------prototype.js的代码,用来构造一个类,并定义initialize为默认构造函数。
----------------------------------
//定义一个类
var class = Class.create();
class.prototype = {
//构造函数
initialize: function()
{
[code]
},
method: function()
{
[code];
}
}
------解决方案--------------------/**
* 创建一种类型,注意其属性 create 是一个方法,返回一个构造函数。
* 一般使用如下
* var X = Class.create(); 返回一个类型,类似于 java 的一个Class实例。
* 要使用 X 类型,需继续用 new X()来获取一个实例,如同 java 的 Class.newInstance()方法。
*
* 返回的构造函数会执行名为 initialize 的方法, initialize 是 Ruby 对象的构造器方法名字。
* 此时initialize方法还没有定义,其后的代码中创建新类型时会建立相应的同名方法。
*
*/
------解决方案--------------------var Class = {
create: function() {
return function() {
this.initialize.apply(this, arguments);
}
}
}
可以改写如下:可能会看的更明了:
var Class={
create:function(){
return cls_initfunc
}
}
var cls_initfunc = function()
{
this.initialize.apply( this,arguments );
}
//如上Class对象的create方法显然返回的是一个对象构建函数
//同时在构件函数里执行this.apply方法初始化对象
//this参数是用来替换的对象,arguments是initialize函数接受的参数,通过执行
//下面,我给出更简单的模型
var obj = function()
{
this.initialize.apply(this, arguments);
}
obj.prototype={
initialize:function(){
//do ur init in here
},
<field> ,
<menthod>
}
分多少无所谓,一定要给哦!呵呵
------解决方案--------------------JS 本身没有CLASS 的初始化和终止的概念, 没必要去弄这些, 倒是ECMA4有完全CLASS的概念...
比如 JScript .Net