JS创建对象的四种方式分别是什么,代码如何写
Admin 2022-06-17 群英技术资讯 1205 次浏览
今天就跟大家聊聊有关“JS创建对象的四种方式分别是什么,代码如何写”的内容,可能很多人都不太了解,为了让大家认识和更进一步的了解,小编给大家总结了以下内容,希望这篇“JS创建对象的四种方式分别是什么,代码如何写”文章能对大家有帮助。new字符创建对象对象是指:具有属性和方法
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()是调用函数

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类型
这个时候我们就需要使用自定义构造函数去创建对象了
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一个对象的时候做了四件事情
this设置为当前对象this对象返回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(); //司藤
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
我们日常上网的时,登录注册账号往往都需要输入验证码,但是如果一些验证码干扰项太多,那么用户看不清,就需要有切换验证码及校验的功能,那么这要怎样做呢?下面就给大家分享js实现简单点击切换验证码的代码,需要的朋友可以参考学习。
方法:1、利用index()和parent()方法来获取当前元素的行位置,语法为“元素对象.parent().index()+1;”;2、利用index()方法来获取当前元素的列位置,语法为“元素对象.index()+1;”。
在处理文本数据的时候,我们经常会需要把文本数据的行与列进行转换操作,这样更方便查看,本文就详细的介绍了vue3+el-table实现行列转换,感兴趣的可以了解一下
这篇文章给大家分享的是Node.js的事件循环的实现,对于事件循环的六个阶文中都有很详细的介绍,下文还有示例可以参考,对大家学习和理解Node.js的事件循环会有帮助,有需要的朋友可以了解看看这篇,接下来就跟随小编一起学习一下吧。
varpath=require('path');//当发现有多个连续的斜杠时,会替换成一个;当路径末尾包含斜杠时,会保留;//在Windows系统会使用反斜杠。varp=path.normalize('foo/bar//baz/asdf/quux/..');varp2=path.normalize('foo/bar//baz/asdf/quux/../')
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008