个人觉得使用Javascript的时候创建自定义的类,没必要非得像Java、ruby等面向对象的语言那样创建一个类,然后使用new关键字,生成类的实例。因为JS是使用原型链的继承方式。那我们直接使用此方式即可,下面是小弟的代码,欢迎大家抛砖。
-------------------------------
1. 创建module。
2. 创建自定义类custom_obj,并且创建其原型方法get_name和get_sex。
3. 再module上添加自定义了同名的方法,将参数赋值给闭包的局部变量;使用new返回自定义对象。
稍微解释一下,虽然在 第三部也是用了new,但是这个new只是为了将当前对象的prototype指向自定义对象,和将this指针指向自定义对象,并不是创建类的实例的意思。
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指针指向自定义对象,并不是创建类的实例的意思。
本文介绍了一种在JavaScript中创建自定义类的方法,利用原型链继承特性,通过闭包保存状态,并提供了获取名称和性别实例属性的方法。
829

被折叠的 条评论
为什么被折叠?



