JS创建对象的四种方式
目录
- 1.通过字面量的方式去创建对象
- 2.使用new字符创建对象
- 3.自定构造函数创建对象
- 4.工厂模式创建对象
- 1.字面量的方式去创建对象
- 2.使用
new
字符创建对象 - 3.自定义构造函数
- 4.工厂模式创建对象
1.通过字面量的方式去创建对象
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字符创建对象
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.自定构造函数创建对象
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.工厂模式创建对象
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); //200per.sayHi(); //司藤
【JS创建对象的四种方式】到此这篇关于 JS创建对象的四种方式的文章就介绍到这了,更多相关 JS创建对象的四种方式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- 热闹中的孤独
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 一个人的旅行,三亚
- 布丽吉特,人生绝对的赢家
- 慢慢的美丽
- 尽力
- 一个小故事,我的思考。
- 家乡的那条小河
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量