JavaScript 属性是指 JavaScript 中的变量,它们可以用来存储和访问数据。JavaScript 属性可以是基本类型(如字符串、数字、布尔值),也可以是复杂类型(如对象、数组、函数)。
JavaScript 属性有两种形式:全局属性和对象属性。全局属性是在全局作用域中定义的变量,它们可以在所有 JavaScript 代码中使用。而对象属性则是在特定对象中定义的变量,它们只能在该对象的作用域内使用。
// 全局变量 var myGlobalVariable = "Hello World"; // 对象变量 var myObject = { myObjectVariable: "Hello World" };
JavaScript 具有动态特性,因此我们可以随时向 JavaScript 对象添加新的属性或方法。例如:
// 添加新的全局变量 myGlobalVariable = "Goodbye World"; // 添加新的对象变量 myObject.myNewObjectVariable = "Goodbye World";
有两种不同类型的属性:数据属性和访问器属性。
数据属性包含一个值,如book1的name属性。
访问器属性不包含值。
访问器属性只需要一个getter或setter。
有一种特殊的语法来使用对象字面量来定义访问器属性:
var book1 = {
_name : "Javascript",
get name() {
console.log("Reading name");
return this._name;
},
set name(value) {
console.log("Setting name to %s", value);
this._name = value;
}
};
console.log(book1.name);
book1.name = "CSS";
console.log(book1.name);
上面的代码生成以下结果。
在访问器属性名称之前使用特殊关键字 get
和 set
。
在数据和访问器之间共享两个属性属性属性。
一个是[[Enumerable]],它决定是否可以迭代。
另一个是[[Configurable]],它确定属性是否可以更改。
我们可以使用 delete
删除可配置属性并可以随时更改其属性。
默认情况下,我们在对象上声明的所有属性都是可枚举和可配置的。
我们可以使用 defineProperty
方法来更改 [[Enumerable]]
和 [[Configurable]]
。
var book1 = {
name : "Javascript"
};
Object.defineProperty(book1, "name", {
enumerable : false
});
console.log("name" in book1); // true
console.log(book1.propertyIsEnumerable("name")); // false
var properties = Object.keys(book1);
console.log(properties.length); // 0
Object.defineProperty(book1, "name", {
configurable : false
});
// try to delete the Property
delete book1.name;
console.log("name" in book1); // true
console.log(book1.name); // "Javascript"
//Object.defineProperty(book1, "name", { // error!!!
// configurable : true
//});
上面的代码生成以下结果。
当JavaScript以严格模式运行时,尝试删除不可配置的属性导致错误。
在非严格模式下,操作会静默失败。
JavaScript 对象JavaScript 对象是拥有属性和方法的数据。真实生活中的对象,属性和方法 真实生活中,一辆汽车是一个对象。对象...
您可以通过的测验程序来测试您的 JavaScript 技能。关于本测验本测验包含 20 道题,每道题的最长答题时间是 20 分钟(这是由于每...
switch 语句用于在不同的条件执行不同的动作。搭配case和default使用(default可以认为是一个特殊的case,case对应一种或多种(d...
Window 对象表示浏览器中打开的窗口。Window 对象描述Window 对象表示一个浏览器窗口或一个框架。在客户端 JavaScript 中,Windo...