JavaScript高级之对象属性的设置和访问
  TEZNKK3IfmPf 2023年11月12日 64 0

对象概述

JavaScript中的对象是属性和方法的集合体。

对象声明

对象由属性和方法组成。

  • 属性:属性名(字符串)和属性值(任意类型的数据)组成。
  • 方法:一种特别的属性,属性名就是函数名,属性值是一个函数。

语法如下:

var 对象名 = {
     
       
	属性名: 属性值,
	属性名: 属性值,
	...
	方法名: function ([参数列表]) {
     
       
		// 方法体
	},
	方法名: function ([参数列表]) {
     
       
		// 方法体
	}
	...
};

例如:

var obj = {
     
       
    name: '张三',
    age: 12,
    gender: 'm',
    study: function () {
     
       
        console.log('学习...');
    },
    play: function () {
     
       
        console.log('娱乐...');
    }
};

访问对象中的属性

访问对象中的属性值有两种方式:

  • 对象名.属性名:编码简单,但有些情况不适合使用。如obj.nameobj.study()
  • 对象名['属性名']:编码麻烦,任何情况下都能使用。如obj['name']obj['study']()
var obj = {
     
       
    name: '张三',
    age: 12,
    gender: 'm',
    study: function () {
     
       
        console.log('学习...');
    },
    play: function () {
     
       
        console.log('娱乐...');
    }
};

// 对象名.属性名
console.log(obj.name);// 访问属性值
obj.study();// 调用方法

// 对象名['属性名']
console.log(obj['name']);// 访问属性值
obj['study']();// 调用方法

补充

什么时候必须使用对象名['属性名']的方式?

通常情况下我们都是使用对象名.属性名的方式访问属性值或者调用方法。

但在一些特殊情况下必须使用对象名['属性名']的方式。如:

  • 属性名包含特殊字符如:-或空格。
  • 属性名不确定的情况。
var obj = {
     
       };

// 1.给对象添加一个属性:content-type: application/json
// 错误写法
// obj.content-type='application/json';// SyntaxError: Invalid left-hand side in assignment
// console.log(obj.content-type);
// 正确写法
obj['content-type'] = 'application/json';
console.log(obj['content-type']);

// 2.属性名不确定的情况,如属性名是一个变量
var key = 'age';
var value = 18;
// 错误写法
// obj.key = value;
// console.log(obj);// { 'content-type': 'application/json', key: 18 },不是我们期望的age:18
// 正确写法
obj[key] = value;
console.log(obj);// { 'content-type': 'application/json', age: 18 }
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月12日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   27天前   22   0   0 json
  TEZNKK3IfmPf   2024年04月19日   21   0   0 jsonjava
TEZNKK3IfmPf