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

Javascript 直接使用原型继承
个人觉得使用Javascript的时候创建自定义的类,没必要非得像Java、ruby等面向对象的语言那样创建一个类,然后使用new关键字,生成类的实例。因为JS是使用原型链的继承方式。那我们直接使用此方式即可,下面是小弟的代码,欢迎大家抛砖。

var module = (function(m){
    var m_name, m_sex;

    m.custom_obj = function(name, sex){
        m_name = name; 
        m_sex = sex;
        return new custom_obj();
    }

    function custom_obj(){
    }

    custom_obj.prototype.get_name = function(){
        return m_name;
    }

    custom_obj.prototype.get_sex = function(){
        return m_sex;
    }

    return m; 
}(module || {}));

var obj = module.custom_obj("icekiller", "man");
console.log(obj);
console.log(obj.get_name());
console.log(obj.get_sex());


-------------------------------
1. 创建module。
2. 创建自定义类custom_obj,并且创建其原型方法get_name和get_sex。
3. 再module上添加自定义了同名的方法,将参数赋值给闭包的局部变量;使用new返回自定义对象。

稍微解释一下,虽然在 第三部也是用了new,但是这个new只是为了将当前对象的prototype指向自定义对象,和将this指针指向自定义对象,并不是创建类的实例的意思。