JavaScript访问对象属性和⽅法及区别
这篇⽂章主要介绍了浅析JavaScript访问对象属性和⽅法及区别的相关资料,仅供参考
属性是⼀个变量,⽤来表⽰⼀个对象的特征,如颜⾊、⼤⼩、重量等;⽅法是⼀个函数,⽤来表⽰对象的操作,如奔跑、呼吸、跳跃等。在JavaScript中通常使⽤”."运算符来存取对象的属性的值。或者使⽤[]作为⼀个关联数组来存取对象的属性。
对象的属性和⽅法统称为对象的成员。
访问对象的属性
在JavaScript中,可以使⽤“ . ”和“ [ ] ”来访问对象的属性。
1. 使⽤“ . ”来访问对象属性
语法:
objectName.propertyName
其中,objectName 为对象名称,propertyName为属性名称。
javascript数组对象
2. 使⽤“ [ ] ”来访问对象属性
语法:
objectName[propertyName]
其中,objectName 为对象名称,propertyName为属性名称。
访问对象的⽅法
在JavaScript中,只能使⽤“ . ”来访问对象的⽅法。
语法:
其中,objectName 为对象名称,methodName() 为函数名称。
【例】创建⼀个Person类:
1function Person() {
2this.name=" 张三 "; // 定义⼀个属性 name
3this.sex=" 男 "; // 定义⼀个属性 sex
4this.age=22; // 定义⼀个属性 age
5this.say=function(){ // 定义⼀个⽅法 say()
6return "嗨!⼤家好,我的名字是 " + this.name + " ,性别是 " + this.sex + ",今年 " + this.age +"岁!";
7  }
8 }
9var zhangsan=new Person();
10 alert("姓名:"+zhangsan.name); // 使⽤“.”来访问对象属性
11 alert("性别:"+zhangsan.sex);
12 alert("年龄:"+zhangsan["age"]); // 使⽤“[ ]”来访问对象属性
13 alert(zhangsan.say);  // 使⽤“.”来访问对象⽅法
PS:浅析对象访问属性的"."和"[]"⽅法区别
在JavaScript中通常使⽤”."运算符来存取对象的属性的值。或者使⽤[]作为⼀个关联数组来存取对象的属性。但是这两种⽅式有什么区别了?例如,读取object中的property属性值:
    object.property
    object['property']
以上两种⽅式都可以实现属性的存取。
1.语法⽅⾯的区别
点表⽰法的对象的属性名是标识符,⽽后者的属性名则是⼀个字符串。
2.灵活性⽅⾯的区别
在JavaScript编写程序中,可以为对象创建任意数⽬的属性。但使⽤”.“运算符来存取⼀个对象的属性时,属性名是⽤标识符表⽰的。⽽在JavaScript程序中,标识符必须被逐字地输⼊,它们不是⼀种数据
类型,因此程序不能对其操作。也就是说,标识符是静态的,在程序中必须对其进⾏硬编码。
⽽使⽤数组[]表⽰法来存取⼀个对象的属性时,属性名是⽤字符串表⽰的。字符串是JavaScript的⼀种数据类型,因此可以在程序运⾏中操作并创建它们。
3.性能⽅⾯区别
数组[]表⽰法在存取属性值时会进⾏表达式运⾏。⽽点表⽰法是直接存取属性值,理论上执⾏效率会⽐数组表⽰法⾼。性能⽅⾯其实可以忽略。
某些场景必须⽤到数组表⽰法来动态存取属性值,这个是点表⽰法⽆法做到的。
总的来说,这两种⽅法区别上不⼤,都有对应的使⽤场景。点表⽰法⼀般作为静态对象使⽤时来存取属性。⽽数组表⽰法在动态存取属性时就⾮常有⽤。