ecma - 262把对象(对象)定义为“属性的无序集合,每个属性存放一个原始值,对象或函数”。严格来说,这意味着对象是无特定顺序的值的数组。
<>强面向对象语言的要求强>
一种面向对象语言需要向开发者提供四种基本能力:
-
<李>封装——把相关的信息(无论数据或方法)存储在对象中的能力李>
<李>聚集——把一个对象存储在另一个对象内的能力李>
<李>继承——由另一个类(或多个类)得来类的属性和方法的能力李>
<李>多态——编写能以多种方法运行的函数或方法的能力李>
对象的创建和销毁都在JavaScript执行过程中发生,理解这种范式的含义对理解整个语言至关重要。
JavaScript中的所有事物都是对象:字符串,数值,数组,函数…
此外,JavaScript允许自定义对象。
<强> JavaScript对象强>
JavaScript提供多个内建对象,比如字符串、日期、数组等等。
对象只是带有属性和方法的特殊数据类型。
<强>访问对象的属性强>
属性是与对象相关的值。
访问对象属性的语法是:
<代码> objectName.propertyName 代码>
这个例子使用了字符串对象的长度属性来获得字符串的长度:
var=消息“Hello World !”; var x=message.length;//12
<强>访问对象的方法强>
方法是能够在对象上执行的动作。
您可以通过以下语法来调用方法:
<代码> objectName.methodName() 代码>
这个例子使用了字符串对象的toUpperCase()方法来将文本转换为大写:
var=消息“Hello world !”; var x=message.toUpperCase ();//HELLO WORLD !
<>强创建JavaScript对象强>
通过JavaScript,您能够定义并创建自己的对象。
创建新对象有两种不同的方法:
-
<李>定义并创建对象的实例李>
<李>使用函数来定义对象,然后创建新的对象实例李>
<强>方式一:实例强>
& lt; script> var人=新对象(); person.firstname=氨榷? person.lastname=案谴摹? person.age=56; person.eyecolor=袄渡? document . write(人。firstname + " " +人。年龄+“岁。”); & lt;/script>
替代语法(使用对象文字):
<强>方式二:实例强>
& lt; script> var人={firstname:“比尔”,姓:“盖茨”,年龄:56岁eyecolor:“蓝色”} document . write(人。firstname + " " +人。年龄+“岁。”); & lt;/script>
<强>方式三:使用对象构造器强>
本例使用函数来构造对象:
& lt; script> 函数的人(firstname、lastname、年龄、eyecolor) { this.firstname=firstname; this.lastname=姓; this.age=年龄; this.eyecolor=eyecolor; }//创建对象 var我爸=新人(“比尔”,“盖茨”,56岁的“蓝色”); document . write(我父亲。firstname +”是“+我爸。年龄+“岁。”); & lt;/script>
<>强创建JavaScript对象实例强>
一旦您有了对象构造器,就可以创建新的对象实例,就像这样:
var我爸=新人(“比尔”,“盖茨”,56岁的“蓝色”); var myMother=新人(现年48岁的“乔布斯”,“工作”“绿色”);
<强>把属性添加到JavaScript对象强>
您可以通过为对象赋值,向已有对象添加新属性:
假设personObj已存在,您可以为其添加这些新属性:firstname、lastname,年龄以及eyecolor:
person.firstname=氨榷? person.lastname=案谴摹? person.age=56; person.eyecolor=袄渡? var x=person.firstname; console.log (x);//比尔
<强>把方法添加到JavaScript对象强>
方法只不过是附加在对象上的函数。