js 自定义extend函数

js 自定义extend函数转自:http://blog.csdn.net/openblogs/article/details/251691651.实现:/***有一个函数为extend,该函数有两个参数*arg1*arg2*当第一次调用该函数的时候,创建一个类,*当第二次调用该函数的时候,为这个类提供扩展*/functionextend(js

js

转自: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

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注