JavaScript 面向对象之一 —— 对象(认识对象)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zx562602419/article/details/71597550

本系列文章根据《爱前端邵山欢老师深入浅出的js面向对象》视频整理归纳

认识对象

对象在JavaScript中分为狭义对象和广义对象两种。

● 所谓的狭义对象,就是用{}这种字面量的形式定义的对象,它是一组属性的无序集合
var obj = {
    name : '张鑫',
    age : 25,
    sex : '男',
    hobby : ['打游戏','看电影','听音乐','看书']
}

上面的对象,表示一个“人”,里面只有四个属性,没有其他东西。

对象除了能存储值,还能存储值的“语义”,值的语义,在术语上称作keys(键)。

所以得出结论,对象就是一组值与值的语义的封装。

● 广义对象是一个对象,除了一组属性外,还有别的东西。

比如DOM元素是对象,但又与我们之前说的狭义对象中的“只有一组值”不同。DOM元素拥有对象的一切特征,但其除了属性值外还有实体的HTML标签。

var box = document.getElementById('box');
console.log(typeof box);   //object

我们可以通过‘.’语法给其添加属性,并访问

box.name = '张鑫';
box.age = 25;
box.sex = '男';
console.log(box.sex);  // 男

比如数组,数组也是对象,对象的所有特征它也具备,也可以添加属性并进行访问,但是其除了属性值以外还拥有一组数。

var arr = [1,2,3,4,5,6];
console.log(typeof arr);  // object

//添加属性

arr.name = '张鑫';
arr.age = 25;
arr.sex = '男';
console.log(arr.sex);  // 男

综上所述,得出结论:系统内置的所有引用类型值,都是对象,他们都能够添加自定义属性,并进行访问。如:

function 函数
array 数组
regexp 正则表达式
DOM 元素
window、document、Math、Date 对象
Number、String 内置包装构造函数得到的值

我们只能创建狭义对象,而不能创建广义对象。

最后我们得出结论,能够添加属性的我们即可认为它是一个对象。

猜你喜欢

转载自blog.csdn.net/zx562602419/article/details/71597550