阅读 213

JS创建对象的四种方式

这篇文章主要给大家分享JS创建对象的四种方式,分别是字面量的方式去创建对象、使用new字符创建对象、自定义构造函数、工厂模式创建对象,更多详细内容,请参考下面文章的具体内容

目录
  • 1.通过字面量的方式去创建对象

  • 2.使用new字符创建对象

  • 3.自定构造函数创建对象

  • 4.工厂模式创建对象

创建对象的4种方式:

  • 1.字面量的方式去创建对象

  • 2.使用new字符创建对象

  • 3.自定义构造函数

  • 4.工厂模式创建对象

对象是指:具有属性和方法

1.通过字面量的方式去创建对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
var person1={
 
    name:'柯南',
 
    age:12,
 
    sex:'男',
 
    eat:function(){
 
        console.log("我饿了,想吃饭")
 
    },
 
    say:function(){
 
        console.log("我叫柯南")
 
    }
 
}
 
console.log("person.eat输出函数",person.eat)
 
person.eat(); //直接输出 我饿了,想吃饭

我们需要注意的是:person.eat和person.eat()的区别

  • person.eat是输出函数

  • person.eat()是调用函数

2.使用new字符创建对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var person2=new Object();
 
person2.name='柯南'
 
person2.age='21'
 
person2.sex='男'
 
person2.eat=function(){
 
    console.log("我饿了,想吃饭")
 
}
 
person2.say=function(){
 
    console.log("我叫柯南")
 
}
 
console.log( '性别',person2.sex ) //输出男

上面这两种方式去创建对象的缺点:

虽然上面这两种都可以去创建对象

但是我们创建出来的对象压根就不知道是什么类型?

当然我们知道他们是OBject类型

这个时候我们就需要使用自定义构造函数去创建对象了

3.自定构造函数创建对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
function Person(name,age,sex,like){
 
    console.log('没有给like形参传递值就是undeined',like)
 
    // 这里的this指向的是Person这个对象
 
    console.log('this',this)
 
    this.name=name;
 
    this.age=age;
 
    this.sex=sex;
 
    this.say=function(){
 
        console.log("我叫",name)
 
    }
 
}
 
//这一行代码表示的是创建一个对象
 
//同时实例化一个对象
 
//并且给这个对象的属性进行初始化
 
//所以这一行代码并不简单
 
let per1=new Person('柯南',19,'男');
 
per1.say();
 
console.log(per1 instanceof Person);//true

现在我们知道了per1是属于Person类型的,这就是自定构造函数创建对象的优势,我们知道它创建的对象是哪个类型的

ps:构造函数通常首字母大写


当我们new一个对象的时候做了四件事情:

通过创建自定义对象我们明白了当我们new一个对象的时候做了四件事情

  • 1.开辟空间存储当前对象

  • 2.把this设置为当前对象

  • 3.设置属性和方法

  • 4.把this对象返回

4.工厂模式创建对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function createObj(name,age) {
 
    let obj=new Object();
 
    obj.name=name;
 
    obj.age=age;
 
    obj.sayHi=function(){
 
        console.log(obj.name)
 
    }
 
    return obj;
 
}
 
let per=createObj('司藤',200)
 
console.log(per.age); //200
 
per.sayHi(); //司藤

到此这篇关于 JS创建对象的四种方式的文章就介绍到这了


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐