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创建对象的四种方式的文章就介绍到这了