Home  >  Article  >  Web Front-end  >  Object accessor properties in ECMAScript5: Introduction to getters and setters_javascript skills

Object accessor properties in ECMAScript5: Introduction to getters and setters_javascript skills

WBOY
WBOYOriginal
2016-05-16 16:28:161788browse

Obviously this is a topic that has nothing to do with IE (except advanced IE). Nonetheless, interested students should come together to learn about the implementation of getters and setters in the ECMAScript5 standard. In an object, the most commonly used methods to operate the properties or methods are reading (reference) and writing. For example, o.get is a read operation, while o.set = 1 is a write operation. . In fact, in the implementation of the latest mainstream browsers except IE, the key value of any object can be replaced by getter and setter methods, which is called "accessor attribute".

There is no doubt that the getter is responsible for querying the value. It does not take any parameters, while the setter is responsible for setting the key value. The value is passed in the form of parameters. In his function body, all returns are invalid. Different from ordinary attributes, when a memory attribute only declares get or set, it cannot have both reading and writing. When it only has a getter method, it is only read-only. Similarly, when it only has a getter method, it is only read-only. Similarly, when it only has a getter method, it is only read-only. setter method, then what you read will always be undefined. How to declare object storage properties? The fastest way is to use the syntax of object literals to write. Please see the following piece of code:

Copy code The code is as follows:

var oo = {
Name: 'Xianxin',
Get sex(){
         return 'man';
}
};
//Obviously this is not allowed, because Xianxin does not want the outside world to change the fact that he is a male, so he only sets the read-only function for sex
oo.sex = 'woman';
console.log(oo.sex); //The result is still man

What’s interesting is that this subverts our previous understanding, that is, the function keyword is not used when defining the method. In fact, get or set here can be understood as functions in two different states: the inclusive side (writing) and the safe side (reading). When a whole is dismembered into different forms, it means that we may not We need to follow tradition in presentation, so we don't use colons to separate keys and values. So, continue with the example above. How will you become both read and write based on memory attributes? Maybe the following paragraph will give you the answer:

Copy code The code is as follows:

var oo = {
Name: 'Xianxin',
Get sex(){
If(this.sexx){
                return this.sexx;
         }else{
                return 'man';
}
}, set sex(val){
This.sexx = val;
}
};
//Oh, he is so tolerant that even if people change his gender, he will accept it
oo.sex = 'woman';
console.log(oo.sex); //Result woman

Maybe you will think this is unnecessary, because we can completely ignore get and set and directly let the sex method have two permissions. But the reason why we separate get and set is to more clearly understand ECMAScript5's more rigorous interpretation of JavaScript object key value operations. Of course, in China, which is polluted by IE, new mainstream technologies always seem out of place. In actual project development, you may never use get and set, but who can guarantee that they will not do so in the future...

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