63----JS基础-----使用工厂方法创建对象

一 代码

个人不推荐使用下面代码中的工厂方法创建对象,具体看结果的截图解释。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			
			/*
			 * 我们平时创建一个对象的方法,但是当需要创建多个时,这种方法是不方便的。
			 */
			var obj = {
      
      
					name:"孙悟空",
					age:18,
					gender:"男",
					sayName:function(){
      
      
						alert(this.name);
					}
			};

			/*
			 * 使用工厂方法创建对象
			 * 	通过该方法可以大批量的创建对象
			 */
			function createPerson(name , age ,gender){
      
      
				//创建一个新的对象 
				var obj = new Object();
				//向对象中添加属性
				obj.name = name;
				obj.age = age;
				obj.gender = gender;
				obj.sayName = function(){
      
      
					alert(this.name);
				};
				//将新的对象返回
				return obj;
			}
			
			/*
			 * 用来创建狗的对象
			 */
			function createDog(name , age){
      
      
				var obj = new Object();
				obj.name = name;
				obj.age = age;
				obj.sayHello = function(){
      
      
					alert("汪汪~~");
				};
				
				return obj;
			}
			
            /*
			 * 1. 使用工厂方法创建的对象,使用的构造函数都是Object,
			 * 	所以创建的对象都是Object这个类型,
			 * 	就导致我们无法区分出多种不同类型的对象。所以这种创建方法也是不推荐的。
			 */
			var obj2 = createPerson("猪八戒",28,"男");
			var obj3 = createPerson("白骨精",16,"女");
			var obj4 = createPerson("蜘蛛精",18,"女");
			var dog = createDog("旺财",3);
            console.log(obj4);  
			console.log(dog);           // 打印出来的对象,前面是:Object开头,而不是我们想要的开头,例如Dog。
        
		</script>
	</head>
	<body>
	</body>
</html>

二 结果

下面结果看到,使用工厂方法创建的话,对象的,名字都是Object,有时这是不太方便阅读的,所以个人不太推荐这样创建,而且也不是真正的工厂创建方法。
在这里插入图片描述

Guess you like

Origin blog.csdn.net/weixin_44517656/article/details/121331582