JS创建对象的四种简单方式 (工厂模式和自定义构造函数创建对象的区别)


// 对象:特指的某个事物,具有属性和方法(一组无序的属性的集合)
// 特征------>属性
// 行为------>方法

// 创建对象的四种方式

         1 // 1.字面量的方式,就是实例化对象

 2 
 3 var stu1={
 4 name:"小明",
 5 age:20,
 6 ID:20181111,
 7 sex:"男",
 8 eat:function(){
 9 console.log("吃烩面");
10 },
11 readBook:function(){
12 console.log("平凡的世界");
13 }
14 };
15 
16 // 2.调用系统的构造函数
17 
18 var stu2=new Object();
19 stu2.name="小红";
20 stu2.age=19;
21 stu2.ID=20181112;
22 stu2.sex="女";
23 stu2.eat=function(){
24 console.log("吃米饭");
25 };
26 stu2.readBook=function(){
27 console.log("穆世林的葬礼");
28 };
29 //方式1、2 创建的对象没有propotype原型属性,3、4通过函数的形式创建的有prototype属性
prototype属性:为一个特定类声明通用的变量或者函数
不需要显式地声明一个prototype属性,因为在每一个构造函数中都有它的存在
var Person = function(){};
 
var p = new Person();
 
alert(p.__proto__ === Person.prototype);//true
 
31 // 3.自定义构造函数的方式
32 
33 function Student(name,age,ID,sex){
34 this.name=name;
35 this.age=age;
36 this.ID=ID;
37 this.sex=sex;
38 this.sayHi=function(){
39 console.log("您好!");
40 };
41 }
42 //创建对象--->实例化一个对象,同时对属性进行初始化。
43 // 1.开辟空间存储对象
44 // 2.把this设置为当前的对象
45 // 3.设置属性和方法的值
46 // 4.把this对象返回
47 var stu3=new Student("小天",18,20181113,"男");
48 
49 
50 // 4.工厂模式创建对象
51 
52 function student(name,age,ID,sex){
53 var obj = new Object();
54 obj.name=name;
55 obj.age=age;
56 obj.ID=ID;
57 obj.sex=sex;
58 obj.sayHi=function(){
59 console.log("您好!");
60 };
61 return obj;
62 }
63 var stu4=student("小菊",21,20181114,"女");

 


工厂模式和自定义构造函数创建对象的区别:

推荐使用自定义构造函数的方法创建对象

posted @ 2019-09-27 15:05  寒江孤影,江湖路人  阅读(587)  评论(0编辑  收藏  举报