一、面向对象的特征
在 JavaScript中,几乎所有的事物都是对象。
在 JavaScript 中,对象是非常重要的,当你理解了对象,就可以了解 JavaScript
面向对象的特征主要可以概括为封装性、继承性和多态性。
封装指的是隐藏内部的实现细节,只对外开放操作的接口。接口就是对象的方法,无论对象的内部有多复杂,用户只需要知道这些接口怎么使用即可。
封装的优势在于,无论一个对象内部的代码经过了多少次修改,只要不改变接口,就不会影响到使用这个对象时编写的代码。
继承是指一个对象继承另一个对象的成员,从而不改变另一个对象的前提下进行扩展。
多态是指同一个操作作用于不同的对象,会产生不同的执行结果。示例如下:
var obj=123;
console.log(obj.toString());//结果为:123
obj=[1,2,3];
console.log(obj.toString());//结果为:1,2,3
obj=function(){};
console.log(obj.toString());//结果为:function(){}
二、自定义对象
在js中,对象的定义通过"{}"语法实现的,多个成员用逗号分隔。示例如下:
var person = {firstName:"Joke", lastName:"Doe", age:50};
定义 JavaScript 对象可以跨越多行,空格跟换行不是必须的。示例如下:
var person = {
firstName:"Joke",
lastName:"Doe",
age:18,
};
对象属性
可以说 “JavaScript 对象是变量的容器”。
但是,我们通常认为 “JavaScript 对象是键值对的容器”。
键值对通常写法为 name : value (键与值以冒号分割)。
键值对在 JavaScript 对象通常称为 对象属性。
可以通过两种方式访问对象属性:
person.lastName;
或者
person["lastName"];
创建对象的示例:
person=new Object();
person.firstname="Joke";
person.lastname="Doe";
person.age=18;
使用函数来构造对象:
function person(firstname,lastname,age)
{
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
}
当有了对象构造器,我们就可以创建一个新的对象实例:
var myFather=new person("John","Done",58);
var myMother=new person("lili","Rally",48);
JavaScript for…in 循环
JavaScript for…in 语句循环遍历对象的属性。示例如下:
for (variable in object)
{
执行的代码……
}