JavaScript 基础语法之对象的哪些事

回顾
上一篇中我们主要说了 js 中的作用域,代码的名字在某个范围内才起作用,并非在全部的场景或者块下都能有作用。除此之外还了解了 js 执行中比较中的机制:预解析。js 执行的引擎会将 var 和 function 全部提到最面前,然后按次序依次执行之后的代码等内容
这次我们来了解 js 中比较重要的另一个知识点:对象,如果你学过其他的语言肯定也知道对象这个名词。在大部分语法中都有对象这个属性,而且也扮演这很重要的角色
对象
首先需要了解的是对象是一个具体的事物,是看得见摸得着的(例如:书不是对象,红宝书就是一个对象。语言不是一个对象,js 编程语言就是一个对象)指的是具体的事物。而且在 js 中的 es6 之前是没有对象而言的,而且关于 js 是不是一门面向对象的语言,在 es6 之前也争论不休。
js 中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如:字符串、数值、数组、函数等
对象是由属性和方法组成的
属性:事物的特征,在对象中用属性来表示(常用名词)
方法:事物的行为,在对象中用方法来表示(常用动词)
创建对象的三种方式
利用字面量创建对象
利用字面量创建对象,利用字面量创建对象有两种调用方法,第一种就是用“.”调用,第二种就是使用“[ ]”直接调用,不过第二种需要注意的是使用方括号调用里面需要写变量

变量、属性、函数、方法总结
变量:单独声明赋值,单独存在的
属性:对象里面的变量称为属性,不需要声明,用来描述该对象的特征
函数:单独存在,通过 “函数名()” 的方式就可以调用
方法:对象里面的函数称之为方法,方法不需要声明,使用后“对象.方法名()” 的方式就可以调用,方法用来描述该对象的行为和功能
注意:如果把函数写在对象中,调用的时候就需要 对象.方法()
利用 new Object 创建对象

利用构造函数创建对象
如果想一次创建多个对象的话,就需要用到构造函数

需要注意的是
构造函数首字母大写
构造函数不需要 return 就可以返回结果
调用构造函数必须用 new
只要 new Star() 调用函数就创建一个对象
属性和方法前面必须添加 this
new 关键字执行顺序
new 构造函数会在内存中创建一个空的对象
this 就会指向刚才创建的空对象
执行构造函数里面的代码,给空对象添加属性和方法
返回这个对象
遍历对象属性
遍历对象是往后工作中相当常用的技能之一,一般都会使用 for...in 遍历求属性值

注意:在上述 for...in 遍历中 k 变量输出的是:属性名,obj[k] 得到的是属性值。
好了,今天的对象内容都聊完了,这些都是相当基础的内容,可以自己在编辑器中多练习练习。有什么问题欢迎随时留言~
版权声明: 本文为 InfoQ 作者【前端史塔克】的原创文章。
原文链接:【http://xie.infoq.cn/article/9b01e3861c644d9948f887d0a】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论