js 语法

读过一篇文章里面js面向对象的写法通过

function New(aClass, aParams)    //通用创建函数
    {
        function new_()     //定义临时的中转函数壳
        {
            aClass.Create.apply(this, aParams);   //调用原型中定义的的构造函数,中转构造逻辑及构造参数
        };
        new_.prototype = aClass;    //准备中转原型对象
        return new new_();          //返回建立最终建立的对象
    };

 起到了构造函数的作用,但是直接用NEW()创建对象,感觉不像类,而且这样写的类的方法在编辑器时,不会自动提示,模仿下有了方法二。

方法二:

var Class = {
    create: function () {
        return function () {
            this.initialize.apply(this, arguments);
        }
    }
}//模仿形成构造器函数的的效果

var click_class = Class.create()//建立click_class类
click_class.prototype = {
    initialize: function (name,obj) {
        this.name=name
        this.obj = $(obj)
    },//定义构造器函数
    pri: function () {
        alert(this.name+":"+this.obj.html())
    }//定义公共方法
}
            var t = new click_class("sonny","p")
$(".div").click(function () {
    t.obj=$(this)//js的特性覆盖对象类的属性
    t.pri()
})
    

 demo:

posted @ 2012-05-03 17:12  break_happy  Views(1198)  Comments(0Edit  收藏  举报