js创建对象之寄生模式

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
		//创建对象之寄生构造模式
		function  Person(name , age , job){
			var o = new Object();
			o.name = name;
			o.age = age;
			o.job = job
			o.sayName = function(){
				console.log(this.name);
			}
			return o;
		}
		
		var frient = new Person("宝清老窖" , 29 , "Software");
		frient.sayName();
		
		//怎么创建一个特殊的数组呢?
		function specialArray(){
			//创建数组
			var values = new Array();
			//添加值
			values.push.apply(values , arguments);	//这句话一般人不理解,跟下面是相等的
			/*if( arguments.length > 0 ){
				for(var i = 0 ; i < arguments.length ; i++){
					values.push(arguments[i]);
				}
			}*/
			//添加方法
			values.toPipedString = function(){
				return this.join('|');
			}
			
			return values;
		}
		
		var colors = new specialArray('red','yellow','green');
		console.log(colors);
		
		//寄生模式不能通过instanceof来确定操作类型
		//所以尽量避免使用
		</script>
	</body>
</html>

  

posted on 2016-04-24 17:28  宝清老窖  阅读(244)  评论(0编辑  收藏  举报