简单对比创建对象的三种方式

一、工厂模式

工厂模式的本质是函数的调用,具体方法如下:

1.创建一个函数   函数中包含以下几个部分:

A.在函数中创建一个空对象

B.设置对象的属性  obj.name = name;其中obj为创建的空对象的名字

C.为对象添加方法

D.返回对象

2.函数的调用

function Student (name, sex, age) {
			var obj = {};
			obj.name = name;
			obj.sex = sex;
			obj.age = age;
			obj.informationPer = function () {
				console.log(obj.name, this.age);
			}
			return obj;
		}
//使用工厂模式创建对象(函数调用)
		var stu1 = Student("中岛美雪", "女", 60);
		console.log(stu1);
		stu1.informationPer();

二、构造函数创建对象

构造函数创建对象的实质是构造函数与new运算符合用,具体的方法如下:

1.构造一个函数   注意:构造函数的名字的每一个单词的首字母都要大写,以区别于其他普通函数.

函数中包含以下几个部分:

A. 设置对象的属性    注意:在这里使用this.  this.name = name

B. 为对象添加方法

2.使用构造函数创建对象

注意:

1.为了区别构造函数与普通函数,构造函数的每个单词的首字母都大写.

2.使用构造函数来创建对象时,要使用new运算符.

3.注意:输出的结果是person对象.
//构造函数
		function Person(name, sex, age){
			this.name = name;
			this.sex = sex;
			this.age = age;
			this.sayHello = function () {
				console.log("nihao")
			}
		}	
		//使用构造函数创建对象
		var per = new Person("仓央嘉措", "男", 53);
		console.log(per);

三、构造函数和原型对象创建对象

1.构造函数   注意:每一个原型对象都有一个constructor属性,存储的是创建对象时的构造函数.

2.原型对象

Dog.prototype.bark = function () {

                            console.log("旺旺");

                   }

3.实例化对象

//构造函数
		function Dog (name, age){
			this.name = name;
			this.age = age;
		}
//原型对象
		Dog.prototype.bark = function () {
			console.log("旺旺");
		}
		Dog.prototype.eat = function () {
			console.log("骨头");
		}
//实例化对象
		var daHuang = new Dog("大黄", 18);
		console.log(daHuang.name);
		daHuang.bark();
console.log(Dog.prototype.constructor);


猜你喜欢

转载自blog.csdn.net/qq_41115965/article/details/80297947
今日推荐