写点什么

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

作者:前端史塔克
  • 2021 年 12 月 05 日
  • 本文字数:1522 字

    阅读完需:约 5 分钟

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

回顾

上一篇中我们主要说了 js 中的作用域,代码的名字在某个范围内才起作用,并非在全部的场景或者块下都能有作用。除此之外还了解了 js 执行中比较中的机制:预解析。js 执行的引擎会将 var 和 function 全部提到最面前,然后按次序依次执行之后的代码等内容


这次我们来了解 js 中比较重要的另一个知识点:对象,如果你学过其他的语言肯定也知道对象这个名词。在大部分语法中都有对象这个属性,而且也扮演这很重要的角色

对象

首先需要了解的是对象是一个具体的事物,是看得见摸得着的(例如:书不是对象,红宝书就是一个对象。语言不是一个对象,js 编程语言就是一个对象)指的是具体的事物。而且在 js 中的 es6 之前是没有对象而言的,而且关于 js 是不是一门面向对象的语言,在 es6 之前也争论不休。


js 中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如:字符串、数值、数组、函数等


对象是由属性和方法组成的


  • 属性:事物的特征,在对象中用属性来表示(常用名词)

  • 方法:事物的行为,在对象中用方法来表示(常用动词)

创建对象的三种方式

利用字面量创建对象

利用字面量创建对象,利用字面量创建对象有两种调用方法,第一种就是用“.”调用,第二种就是使用“[ ]”直接调用,不过第二种需要注意的是使用方括号调用里面需要写变量


// 创建对象的三种方式// 1、利用字面量创建对象var obj = {  uname: '张三',  age: 18,  sex: '男',  sayHi: function () {    console.log('hi~')  }}// 第一种调用属性方法console.log(obj.uname)// 第二种调用属性方法console.log(obj['sex'])
复制代码



变量、属性、函数、方法总结

  • 变量:单独声明赋值,单独存在的

  • 属性:对象里面的变量称为属性,不需要声明,用来描述该对象的特征

  • 函数:单独存在,通过 “函数名()” 的方式就可以调用

  • 方法:对象里面的函数称之为方法,方法不需要声明,使用后“对象.方法名()” 的方式就可以调用,方法用来描述该对象的行为和功能


注意:如果把函数写在对象中,调用的时候就需要 对象.方法()

利用 new Object 创建对象

// 利用 new Object 创建对象var obj = new Object()// 利用等号 = 赋值的方法 添加对象的属性和方法// 每个属性和方法之间用分号 结束obj.name = '李四'obj.age = 18obj.sex = '男'obj.sayHi = function () {  console.log('hi~')}
console.log(obj.name)// 调用方法obj.sayHi()
复制代码



利用构造函数创建对象

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


// 利用构造函数创建对象function Star (uname, age, sex) {  this.name = uname  this.age = age  this.sex = sex}var arr = new Star ('张三', 18, '男')// 查看 new 之后的这个对象里面存的什么console.log(arr)
console.log(arr.name);console.log(arr.sex);
复制代码



需要注意的是


  • 构造函数首字母大写

  • 构造函数不需要 return 就可以返回结果

  • 调用构造函数必须用 new

  • 只要 new Star() 调用函数就创建一个对象

  • 属性和方法前面必须添加 this


new 关键字执行顺序


  • new 构造函数会在内存中创建一个空的对象

  • this 就会指向刚才创建的空对象

  • 执行构造函数里面的代码,给空对象添加属性和方法

  • 返回这个对象

遍历对象属性

遍历对象是往后工作中相当常用的技能之一,一般都会使用 for...in 遍历求属性值


// 使用 for...in 遍历属性值var obj = {  name: '晴天',  age: 18,  sex: '男'}// console.log(obj.name)// console.log(obj.age)
for (var k in obj) { // 输出属性名 console.log(k) // 输出属性值 console.log(obj[k])}
复制代码



注意:在上述 for...in 遍历中 k 变量输出的是:属性名,obj[k] 得到的是属性值。


好了,今天的对象内容都聊完了,这些都是相当基础的内容,可以自己在编辑器中多练习练习。有什么问题欢迎随时留言~

发布于: 2 小时前阅读数: 6
用户头像

还未添加个人签名 2019.09.04 加入

普及从学校到工作怎么快速转变,更高效学习前端知识及后续发展趋向,更好快速的融入到工作中 关注公号:前端史塔克

评论

发布
暂无评论
JavaScript基础语法之对象的哪些事