Home >Web Front-end >JS Tutorial >A brief analysis of JavaScript access object properties and methods and their differences_javascript skills

A brief analysis of JavaScript access object properties and methods and their differences_javascript skills

WBOY
WBOYOriginal
2016-05-16 15:32:121136browse

Attribute is a variable used to represent the characteristics of an object, such as color, size, weight, etc.; method is a function used to represent the operation of the object, such as running, breathing, jumping, etc.

In JavaScript, the "." operator is usually used to access the value of an object's properties. Or use [] as an associative array to access the properties of the object.

The properties and methods of an object are collectively called members of the object.

Accessing the properties of an object

In JavaScript, you can use "." and "[]" to access the properties of an object.

1. Use "." to access object properties

Syntax:

objectName.propertyName

Among them, objectName is the object name and propertyName is the property name.

2. Use "[ ]" to access object properties

Syntax:

objectName[propertyName]

Among them, objectName is the object name and propertyName is the property name.

Methods to access objects

In JavaScript, you can only use "." to access the methods of an object.

Syntax:

objectName.methodName()

Among them, objectName is the object name and methodName() is the function name.

[Example 5-1] Create a Person class:

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: A brief analysis of the difference between the "." and "[]" methods of object access properties

In JavaScript, the "." operator is usually used to access the value of an object's properties. Or use [] as an associative array to access the properties of the object. But what is the difference between these two methods?

For example, read the property attribute value in object:

object.property

  object['property']

Both of the above two methods can achieve attribute access.

1. Differences in grammar

The attribute name of the object in dot notation is an identifier, while the attribute name of the latter is a string.

2. The difference in flexibility

In JavaScript programming, you can create any number of properties for an object. But when using the "." operator to access the properties of an object, the property name is represented by an identifier. In a JavaScript program, identifiers must be entered literally; they are not a data type, so the program cannot operate on them. That is, identifiers are static and must be hardcoded in the program.

When using the array[] notation to access the attributes of an object, the attribute name is represented by a string. Strings are a JavaScript data type, so they can be manipulated and created while the program is running.

3. Performance differences

Array[] notation will perform expression operation when accessing attribute values. The dot representation directly accesses attribute values, and theoretically the execution efficiency will be higher than that of the array representation. Performance can actually be ignored.

Some scenarios must use array representation to dynamically access attribute values, which cannot be achieved with dot representation.

In general, there is not much difference between these two methods, and both have corresponding usage scenarios. Dot notation is generally used as a static object to access properties. The array representation is very useful when accessing attributes dynamically.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn