javascript 趣讲工厂模式“造人”

1.废话不多,上代码

			var obj = {
    
    
				name:"林徽因",
				age:19,
				sayname:function(){
    
    
					console.log(this.name);
			};
			var obj2 = {
    
    
				name:"林青霞",
				age:18,
				sayname:function(){
    
    
					console.log(this.name);
			};
			var obj3 = {
    
    
				name:"马钰",
				age:20,
				sayname:function(){
    
    
					console.log(this.name);

上面这样写特别麻烦
用工厂模式就相对简单点,

2.工厂模式:上代码

注意观察,下面造的两个物种都有一个非常关键的代码

var obj = new Object();

2.1首先,我们来“造人 creatPerson()”

		function creatPerson(name, age){
    
    
				function creatPerson(name, age){
    
    
				var obj = new Object();
				obj.name = name;
				obj.age = age;
				obj.sayname = function(){
    
    
					alert(this.name);
				};
				return obj;
			}
			var jb1 = creatPerson("林青霞",18);
			console.log(jb1);
			jb1.sayname();
			//造狗呢?来,上代码!
			function creatDog(name, age){
    
    
				var obj = new Object();
				obj.name = name;
				obj.age = age;
				obj.sayname = function(){
    
    
					alert("呱呱~~~~");
				};
				return obj;
			}
			var jb2 = creatDog("大黄",45);
			console.log(jb2);
			jb2.sayname();
				obj.name = name;
				obj.age = age;
				obj.sayname = function(){
    
    
					alert(this.name);
				};
				return obj;
			}
			var jb1 = creatPerson("林青霞",18);
			console.log(jb1);
			jb1.sayname();
			

2.2"啪"的一下,很快啊,造完了,造个其他的物种咋样,creatDog()造狗


			//造狗呢?来,上代码!
			function creatDog(name, age){
    
    
				var obj = new Object();
				obj.name = name;
				obj.age = age;
				obj.sayname = function(){
    
    
					alert("呱呱~~~~");
				};
				return obj;
			}
			var jb2 = creatDog("大黄",45);
			console.log(jb2);
			jb2.sayname();

3.工厂模式:缺点

使用工厂方法创建的对象,使用的构造函数都是Object所以创建的对象都是Object这个类型,就导致我们无法区分出多种不同类型的对象

缺点图片
下一讲,我们来讲一下规避这种缺点

猜你喜欢

转载自blog.csdn.net/weixin_44154094/article/details/112202178