JavaScript中的对象是一种数据类型,由名称和值的集合组成,以名称:值对表示。
name:value对可以包含可以包含任何数据类型的属性(包括字符串,数字和布尔值)以及方法,这些方法是对象中包含的函数。
JavaScript中的对象是独立的实体,可以与现实生活中的对象进行比对。
例如,汽车具有名称和颜色等属性以及诸如start(启动)和stop(停止)之类的方法的对象:
对象 | 属性 | 方法 |
---|---|---|
car.name =天蝎座 car.model = 600 car.color =红色 car.horsePower = 103KW | car.start() car.drive() car.brake() car.stop() |
所有汽车都具有相同的属性,但是每个汽车的属性值都不同。
所有汽车都有相同的方法,但是这些方法可以具有不同的功能。
对象是JavaScript数据类型,就像数字或字符串也是数据类型一样。作为数据类型,对象可以包含在变量中。
使用JavaScript构造对象有多种方法:
使用对象常量,它使用大括号:{}
使用对象构造函数,它使用new Object()
或者,您可以先创建一个构造函数,然后示例化一个调用该函数的对象
在此示例中,我们将使用 对象字面量(object literal)。什么是字面量?用来为变量赋值时的常数量称为字面量
var user = {firstName:"Vishal", lastName:"Choudhary", age:22, location:"New Delhi"};测试看看‹/›
一个对象定义可以跨越多行。
var user = { firstName: "Vishal", lastName: "Choudhary", age: 22, location: "New Delhi" };测试看看‹/›
在本教程的后面,我们将讨论对象构造函数和构造函数。
属性是对象中名称和值之间的关联,并且可以包含任何数据类型。
属性通常是指对象的特征。
属性 | 属性值 |
---|---|
firstName | 维沙尔 |
lastName | 乔达里 |
age | 22 |
location | 新德里 |
有两种访问对象属性的方法:
点表示法: .
括号符号: []
让我们重新访问原始示例对象user。
user.firstName;测试看看‹/›
user["firstName"];测试看看‹/›
点号和括号都经常使用。但是,点表示法更快,更易读。
方法是作为对象属性值的函数,因此是对象可以执行的任务。
方法存储在属性中作为函数定义。
属性 | 属性值 |
---|---|
firstName | 维沙尔 |
lastName | 乔达里 |
age | 22 |
location | 新德里 |
getName | function() {return this.firstName + " " + this.lastName;} |
var user = { firstName: "Vishal", lastName : "Choudhary", age : 22, location : "New Delhi", getName : function() { return this.firstName + " " + this.lastName; } };
注意:方法是作为属性存储的函数。
为了检索一个对象方法,您可以像调用常规函数一样调用它,只是将其附加到对象变量上。
user.getName();测试看看‹/›
如果访问不带()括号的方法,它将返回函数定义:
user.getName;测试看看‹/›
您可能已经注意到我们的方法有些奇怪。以这个为例:
getName: function() { return this.firstName + " " + this.lastName; }
this关键字是指代码被写入内部当前对象-所以在这种情况下,this等同于user。
换句话说,this.firstName表示此对象的firstName属性。
您可以在JS this教程JS this关键字了解有关该关键字的更多信息。
当您浏览这些示例时,您可能一直在思考所使用的点符号非常熟悉。那是因为您在整个教程中一直在使用它。
每次我们遍历使用内置JavaScript对象的示例时。
当您使用以下行访问文档对象模型时:
document.write("Hello world"); document.getElementById("para");
您正在使用Document类示例上可用的方法。对于每个加载的网页,都会创建一个Document示例,称为document,它代表整个页面的结构,内容和其他功能,例如URL。同样,这意味着它具有几种可用的常用方法/属性。
当使用关键字声明JavaScript变量时new,该变量将作为对象创建:
var a = new Number(); // 将a声明为Number对象 var b = new String(); // 将b声明为String对象 var c = new Boolean(); // 将c声明为Boolean对象
避免使用String,Number和Boolean对象。它们会使您的代码复杂化,并降低执行速度。
您将在本教程的后面部分了解有关对象的更多信息。