js入门(ES6)[四]---对象
发布日期:2021-06-29 22:23:11
浏览次数:3
分类:技术文章
本文共 3157 字,大约阅读时间需要 10 分钟。
推荐 菜鸟教程
本文中也穿插讲了函数 如果不懂 移步
对象
什么是对象?
对象就是一个个体 比如人 属性有 耳朵 眼睛 鼻子 等等 人会动 会吃饭 会说话
定义对象
对象有属性 好比人有眼睛鼻子
对象有方法 好比人会说话吃饭属性定义
代码中的方法都可以
- name:“属性值” 或者 “name”:“属性值”
- 如果在外部定义了 比如var phone = 123456 那么 在内部直接写phone即可 因为它是具名参数
- 字符串拼接形式 [str1+str2] = “xxxxx” 比如str1=“na” str2=“me” 那么此处为name=“xxxxx”
- 拓展运算符 传入数组全部参数 但是属性名会从0开始
- 对象 直接把另外一个对象传入使用
var phone = 123456;var loves = ["eat","lashi"];var hate = { best: "eat shit", low: "eat myself"};var people = { name: "dmhsq", "smallName": "dog", ["ol" + "d"]: 18, phone, ...loves, hate}console.log(people.name)console.log(people.smallName)console.log(people.old)console.log(people.phone)console.log(people)console.log(people.hate)
打印结果如下
方法定义
方法名可以使用属性定义的那种写法 注意是属性名
方法其实也是 对象的属性 只不过可以执行
方法的定义也有很多种方法
- 普通定义 类似于下面的say say: function(){xxxx}
- 引用外部方法 如下的look 在外部定义 引用时这样写 saliva:look 或者直接 look
- 引用其它对象方法 引用时这样写 touchDog: dog.bark
function look() { return "wow! beautiful girl !"}var dog = { bark: function() { return " Woof, woof, woof " }}var people = { name: "dmhsq", smallName: "dog", say: function() { return "I am a people my name is " + this.name }, ["e" + "at"]: function() { return this.say() + "I eat you" }, saliva: look, look, touchDog: dog.bark}console.log(people.name)console.log(people.smallName)console.log(people.say())console.log(people.eat())console.log(people.saliva())console.log(people.look())console.log(people.touchDog())
拓展(新增)属性
方法一
如下 定义了一个people只有一个name属性 我们增加一个old属性
且对比增加前后的peoplevar people = { name: "dmhsq"}console.log(people.name)console.log(people.old)console.log(people)people.old = 18console.log(people.old)console.log(people)
方法二
浅拷贝
使用Object.assign()Object.assign(本体,拓展1,拓展2…)
使用如下
Object.assign(people,{old:18}) 或者 一样可以引用外部属性 var old = 18; Object.assign(people,{old})示例
var people = { name: "dmhsq"}console.log(people.name)console.log(people.old)console.log(people)Object.assign(people, { old: 18})people.old = 18console.log(people.old)console.log(people)
拓展(新增方法)
和新增属性一样 毕竟大家都是属性 只是类型不同
方法一
people.say = function() { return "hello"}或者function say() { return "hello"}people.say = say
var people = { name: "dmhsq"}console.log(people.name)console.log(people)people.say = function() { return "hello"}console.log(people.say())console.log(people)
方法二
首先 我们不增加say这个方法 直接调用 会怎样?
var people = { name: "dmhsq"}console.log(people.name)console.log(people.say())console.log(people)
答案是 会报错
我们增加一个方法
浅拷贝
使用Object.assign()Object.assign(本体,拓展1,拓展2…)
使用如下
Object.assign(people, { say: function() { return "hello" }})
一样可以引用外部函数
function say() { return "hello"}Object.assign(people, { say})
示例
var people = { name: "dmhsq"}console.log(people.name)console.log(people)Object.assign(people, { say: function() { return "hello" }})console.log(people.say())console.log(people)
关于this
其实我们一直都省略了this
一般this指向window 因为在window这个对象中 this就是指windowvar people = { name: "dmhsq"}var num1 = 1;console.log(this.people)console.log(this.num1)console.log(this)console.log(window)
但是在window下属的对象中 比如people
var people = { name: "dmhsq", say: function() { console.log(this) }}console.log(this)console.log(window)people.say()
转载地址:https://dmhsq.blog.csdn.net/article/details/114045537 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
很好
[***.229.124.182]2024年04月12日 08时33分29秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
linux中文本编辑vi命令插入技巧
2019-04-30
linux中vi中的剪切和删除
2019-04-30
linux中的vi命令文本查找
2019-04-30
vim搜索设置高亮和取消高亮
2019-04-30
linux配置vi
2019-04-30
vimdiff比较两个文件
2019-04-30
linux安装tftp服务器
2019-04-30
windows下mysql的安装
2019-04-30
【Batch】批处理读取文本内容并分割字符串
2019-04-30
【Yaml】了解yaml文件格式
2019-04-30
【git】使用ssh密钥访问Github
2019-04-30
python读取excel
2019-04-30
PDFBox学习总结
2019-04-30
TestNG入门程序
2019-04-30
yum源配置
2019-04-30
tar命令解压文件后造成目录权限更改
2019-04-30
检测到会话cookie中缺少HttpOnly属性
2019-04-30
Centos下Yum安装PHP5.5,5.6
2019-04-30