转自:http://blog.csdn.net/openblogs/article/details/25169165
1.实现:
/**
* 有一个函数为extend,该函数有两个参数
* arg1
* arg2
* 当第一次调用该函数的时候,创建一个类,
* 当第二次调用该函数的时候,为这个类提供扩展
*/
function extend(json,prop){
function F(){
}
/**
* 如果json为函数
*/
if(typeof json == "function"){
/**
* 如果json为一个函数,把json的原型赋值给了F的原型,相当于F继承了json
*/
F.prototype = json.prototype;
/**
* prop为扩展,把prop的每一个key,value键值对赋值给了F的prototype
*/
for(var i in prop){
F.prototype[i] = prop[i];
}
}
/**
* 如果json为json对象
* 当第一次调用extend方法的时候,执行该if语句
*/
if(typeof json == "object"){
/**
* 遍历json对象,把json对象的每一个key值添加了F的prototype属性的属性上
* 把json对象的每一个value值赋值给prototype的属性的值
*/
for(var i in json){
F.prototype[i] = json[i];
}
}
return new F();
}
2.调用
/**
* 该Person为一个对象
*/
var Person = extend({
a:'a',
b:'b'
});
var p = new Person();//不能使用new关键字进行创建了
alert(p.a);
var Student = extend(Person,{
c:'c',
d:'d'
});
var s = new Student();
alert(s.c);
今天的文章js 自定义extend函数分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/28875.html