JavaScript属性



属性是任何JavaScript对象中最重要的部分.


JavaScript 属性

属性是一个JavaScript对象关联的值.

一个JavaScript对象是一个无序的性质集合.

属性通常可以更改、添加和删除,但有些只读.


访问JavaScript属性

访问对象属性的语法是:

objectName.property          // person.age

或者

objectName["property"]       // person["age"]

或者

objectName[expression]       // x = "age"; person[x]

表达式必须是一个正确的属性名

person.firstname + " is " + person.age + " years old.";

让我试试

person["firstname"] + " is " + person["age"] + " years old.";

让我试试


JavaScript for...in 循环

JavaScript for...in 语句可以遍历对象的属性

语法

for (variable in object) {
    code to be executed
}

for...in 循环里面的每个属性将执行一次.

循环对象属性:

var person = {fname:"John", lname:"Doe", age:25};

for (x in person) {
    txt += person[x];
}

让我试试


添加新属性

您可以添加新的属性到现有的对象,只要给它一个值.

假设person对象已经存在-你可以给它新的属性:

person.nationality = "English";

让我试试

不能为属性(或方法)名称使用保留字。JavaScript的命名规则。


删除属性

delete 关键字从对象中删除属性:

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
delete person.age;   // or delete person["age"];

让我试试

delete 关键字同时删除属性的值和属性本身。

删除后,属性不能再使用之前的方法重新添加.

delete 运算符被设计用于对象属性。它对变量或函数没有影响

delete 运算符不得使用预定义JavaScript对象的属性。它可以是您的应用程序崩溃。


属性的属性

所有属性都有名称。此外他们也有值.

这个值就是属性的属性.

这些属性是: 可枚举 enumerable, 可配置 configurable, 可写writable.

这些属性定义了如何访问属性(可读吗?,还是可写的?)

在JavaScript中,所有的属性都可以读取,但只有属性的值是可以改变的(如果属性是可写的)。

( ECMAScript 5 拥有获取和设置所有属性的方法)


原型属性

JavaScript 对象继承它们的prototype属性.

delete 关键字不删除继承的属性,但如果删除原型属性,则会影响从原型继承的所有对象。