创建对象的四种方式
Posted 南风晚来晚相识
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建对象的四种方式相关的知识,希望对你有一定的参考价值。
创建对象的三种方式
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.设置属性和方法
3.把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); //200
per.sayHi(); //司藤
作者:明月人倚楼
出处:https://www.cnblogs.com/IwishIcould/
本文版权归作者所有,欢迎转载,未经作者同意须保留此段声明,在文章页面明显位置给出原文连接
如果文中有什么错误,欢迎指出。以免更多的人被误导。
出处:https://www.cnblogs.com/IwishIcould/
想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,或者关注博主,在此感谢!
万水千山总是情,打赏5毛买辣条行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主(っ•̀ω•́)っ✎⁾⁾!
想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!
支付宝
微信
如果文中有什么错误,欢迎指出。以免更多的人被误导。
以上是关于创建对象的四种方式的主要内容,如果未能解决你的问题,请参考以下文章