在JavaScript中通常使用”."运算符来存取对象的属性的值。或者使用[]作为一个关联数组来存取对象的属性。

对象的属性和方法统称为对象的成员。

访问对象的属性

在JavaScript中,可以使用“ . ”和“ [ ] ”来访问对象的属性。

1. 使用“ . ”来访问对象属性

语法:

objectName.propertyName

其中,objectName 为对象名称,propertyName为属性名称。

2. 使用“ [ ] ”来访问对象属性

语法:

objectName[propertyName]

其中,objectName 为对象名称,propertyName为属性名称。

访问对象的方法

在JavaScript中,只能使用“ . ”来访问对象的方法。

语法:

objectName.methodName()

其中,objectName 为对象名称,methodName() 为函数名称。

【例5-1】创建一个Person类:

1
2
3
4
5
6
7
8
9
10
11
12
13
function Person() {
  this.name=" 张三 "; // 定义一个属性 name
  this.sex=" 男 "; // 定义一个属性 sex
  this.age=22; // 定义一个属性 age
  this.say=function(){ // 定义一个方法 say()
    return "嗨!大家好,我的名字是 " + this.name + " ,性别是 " + this.sex + ",今年 " + this.age +"岁!";
  }
}
var zhangsan=new Person();
alert("姓名:"+zhangsan.name); // 使用“.”来访问对象属性
alert("性别:"+zhangsan.sex);
alert("年龄:"+zhangsan["age"]); // 使用“[ ]”来访问对象属性
alert(zhangsan.say);  // 使用“.”来访问对象方法

PS:浅析对象访问属性的"."和"[]"方法区别

在JavaScript中通常使用”."运算符来存取对象的属性的值。或者使用[]作为一个关联数组来存取对象的属性。但是这两种方式有什么区别了?

例如,读取object中的property属性值:

    object.property

    object['property']

以上两种方式都可以实现属性的存取。

1.语法方面的区别

点表示法的对象的属性名是标识符,而后者的属性名则是一个字符串。

2.灵活性方面的区别

在JavaScript编写程序中,可以为对象创建任意数目的属性。但使用”.“运算符来存取一个对象的属性时,属性名是用标识符表示的。而在JavaScript程序中,标识符必须被逐字地输入,它们不是一种数据类型,因此程序不能对其操作。也就是说,标识符是静态的,在程序中必须对其进行硬编码。

而使用数组[]表示法来存取一个对象的属性时,属性名是用字符串表示的。字符串是JavaScript的一种数据类型,因此可以在程序运行中操作并创建它们。

3.性能方面区别

数组[]表示法在存取属性值时会进行表达式运行。而点表示法是直接存取属性值,理论上执行效率会比数组表示法高。性能方面其实可以忽略。

某些场景必须用到数组表示法来动态存取属性值,这个是点表示法无法做到的。

总的来说,这两种方法区别上不大,都有对应的使用场景。点表示法一般作为静态对象使用时来存取属性。而数组表示法在动态存取属性时就非常有用。

最新文章

  1. RabbitMQ学习系列(四): 几种Exchange 模式
  2. 关于HTTP的几种
  3. Linux Apache 怎么修改工作模式
  4. Jmeter简单测试elasticsearch服务器
  5. Scrum第一天任务认领情况
  6. 官方 Animator 例子解析 Animator.MatchTarget
  7. Selenium 处理windows 上传 窗口
  8. CodeForces 620A Professor GukiZ's Robot
  9. postgresql开启网络连接
  10. redis概述(一)
  11. 使用korofileheader插件vs code添加文件头注释和函数注释
  12. sublime c++
  13. 围绕Buganizer的产品流程
  14. svg矢量图
  15. 北邮新生排位赛2解题报告a-c
  16. 使用Windows 2008R2中的NFS替代Samba协议,解决Windows 与Linux共享文件的问题
  17. WCF 几种错误
  18. 调用css文件,进行调色
  19. gen_empty_obj算子的作用
  20. Siki_Unity_3-16_3D数学基础

热门文章

  1. Entity Framework 4.1:多对多的关系
  2. jquery获取form表单中的内容,并将表单内容更新到datagrid的一行
  3. redis自启动
  4. mysql系列之9.mysql日志&存储引擎
  5. Swift 学习笔记 (继承)
  6. Grunt学习笔记【6】---- grunt-contrib-requirejs插件详解
  7. NFT是什么,有什么前景?
  8. 添加@ControllerAdvice后报错 Failed to invoke @ExceptionHandler method
  9. jQuery:[2]百度地图开发平台实战
  10. Database: index