日期:2014-05-16  浏览次数:20407 次

请高手帮忙注释下。谢谢。
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