JavaScript对象

Posted 橘猫吃不胖~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript对象相关的知识,希望对你有一定的参考价值。

1 初识对象

1.1 什么是对象

在JavaScript中,对象是一种数据类型,它是由属性和方法组成的一个集合。属性是指事物的特征,使用“对象.属性名”访问;方法是指事物的行为,使用“对象.方法名()”进行访问。

对象用“”表示,在“”中包裹了对象的成员(包括属性和方法)。以“key:value”(键-值对)方式存储各成员。"key"是成员名,"value"是成员的值。

在面向对象中,把“属性”称为对象的成员(成员变量),把“方法”称为成员方法(成员函数)

示例:定义了一个手机对象p1

var p1 = 
    color: "粉色",//属性,颜色是粉色
    weight: "188g",//属性,重量
    screenSize: "6.5",//属性,尺寸
    call: function (num) //打电话方法
        console.log("打电话给" + num);
    ,
    sendMessage: function (num, message) //发短信方法
        console.log("给" + num + "发短信,短信内容是:" + message);
    ,
    playVideo: function () //播放视频方法
        console.log("播放视频");
    ,
    playMusic: function () //播放音乐方法
        console.log('播放音乐');
    

//访问p1的属性和方法
console.log(p1.color);//输出手机颜色
console.log(p1.weight);//输出手机重量
console.log(p1.screenSize);//输出手机尺寸
p1.call("123");//调用打电话方法
p1.sendMessage("123", "hello");//调用发短信方法
p1.playVideo();//调用播放视频方法
p1.playMusic();//调用播放音乐方法

1.2 利用字面量创建对象

对象的字面量就是用花括号“ ”来包裹对象中的成员,每个成员使用“key: value”的形式来保存,key表示属性名或方法名,value表示对应的值。多个对象成员之间用“,”隔开。

创建一个空对象:

var obj = ;

创建一个学生对象:

var stu = 
    name: "小明",//属性,姓名
    age: 18,//属性,年龄
    sex: "男",//属性,性别
    sayHello: function () //方法,打招呼
        console.log("Hello");
    

1.3 访问对象的属性和方法

创建好学生对象之后,接下来访问该对象的属性和方法,以上一步创建的学生对象为例:

1.3.1 访问学生对象的属性

stu.name;//方式1

或者:

stu["name"];//方式2

注意:只是访问并不能输出属性的值,如果要输出属性的值,需要使用console.log(),例如:

console.log(stu.name);

输出结果为:小明

1.3.2 访问学生对象的方法

stu.sayHello();//方法1

或者

stu["sayHello"]();//方法2

输出结果:Hello

1.3.3 当对象成员中包含特殊字符时,可以用字符串来表示

示例:

var obj = 
    "name-age": "小明-18"
;
console.log(obj["name-age"]);

输出结果:小明-18

1.3.4 手动赋值属性或方法来添加成员

例如,先创建一个空对象:

var stu = ;

为对象增加name属性:

stu.name = "小明";

为对象增加introduce方法:

stu.introduce = function () 
    console.log("我的名字是:", this.name);

接下来访问name属性和introduce方法:

console.log(stu.name);
stu.introduce();

输出结果为:
小明
我的名字是: 小明

完整代码如下:

var stu = ;//定义一个空对象
stu.name = "小明";//为对象添加name属性
stu.introduce = function () //为对象添加introduce方法
    console.log("我的名字是:", this.name);//this代表当前对象

console.log(stu.name);//输出name属性
stu.introduce();//调用introduce方法

1.4 用new Object创建对象

格式为:

var obj = new Object();//创建一个空对象

示例:

var obj = new Object();	// 创建了一个空对象
obj.name = '小明';// 创建对象后,为对象添加成员
obj.age = 18;
obj.sex = '男';
obj.sayHello = function () 
    console.log('Hello');
;

1.5 利用构造函数创建对象

使用构造函数创建对象的语法为“new 构造函数名()”,在小括号中可以传递参数给构造函数,如果没有参数,小括号可以省略。

语法:

// 编写构造函数
function 构造函数名() 
    this.属性 = 属性;
    this.方法 = function () 
        // 方法体
    

// 使用构造函数创建对象
var obj = new 构造函数名();

1.6 遍历对象的属性和方法

使用for…in语法可以遍历对象中的所有属性和方法,示例代码如下:

// obj为待遍历的对象
var obj =  name: '小明', age: 18, sex: '男' ;
// 遍历obj对象
for (var k in obj) 
    // 通过k可以获取遍历过程中的属性名或方法名
    console.log(k);// 输出:name、age、sex
    console.log(obj[k]);// 输出:小明、18、男

使用in运算符判断一个对象中的某个成员是否存在

var obj =  name: 'Tom', age: 16 ;
console.log('age' in obj);// 输出:true,表示对象成员存在
console.log('gender' in obj);  // 输出:false ,表示对象成员不存在

2 内置对象

JavaScript提供了很多常用的内置对象,包括数学对象Math、日期对象Date、数组对象Array以及字符串对象String等。

示例:封装自己的数学对象
【案例要求】封装一个数学对象myMath,实现求出数组中的最大值。

var myMath = 
    max: function (arr) //arr为形参,代表一个数组
        var max = arr[0];//假设max是数组中的第一个元素
        for (var i = 1; i < arr.length; i++) //从第二个数开始遍历该数组
            if (arr[i] > max) //如果遍历到的数比设定的max大
                max = arr[i];//将遍历到的数赋值给max
            
        
        return max;//最后返回max的值
    

var a = [1, 2, 3, 4, 5];
console.log(myMath.max(a));

输出结果为:5

以上是关于JavaScript对象的主要内容,如果未能解决你的问题,请参考以下文章

常用Javascript代码片段集锦

VSCode自定义代码片段——JS中的面向对象编程

JavaScript单行代码,也就是代码片段

VSCode自定义代码片段9——JS中的面向对象编程

从 TypeScript 类型定义或 GraphQL 片段定义生成 JavaScript 空对象

30秒就能看懂的JavaScript 代码片段