02 JavaScript语言基础-对象

对象

一,简介

对象属于一种复合型数据类型,在对象中可以保存多个不同数据类型的属性。

二,对象分类

1,内建对象:由ES标准中定义的对象,在任何的ES的实现中都可以使用。
2,宿主对象:由JS的运行环境提供的对象,主要指浏览器提供的对象。
3,自定义对象:由开发人员自己创建的对象。

三,创建对象

使用new关键字调用的函数,是构造函数constructor,构造函数是专门用来创建对象的函数。
语法:var 对象 = new 函数;

示例:

var obj = new Object();

四,添加属性

在对象中保存的值被称为属性
语法:对象.属性名 = 属性值;

示例:obj.name = “张无忌”;

五,调用属性

语法:对象.属性名

示例:

console.log(obj.name);

六,修改属性

新属性覆盖旧属性

语法:

对象.属性名 = 新属性;

示例:

obj.name = "张芷若";

七,删除属性

语法:

delete 对象.属性名

示例:

delete obj.name;

八,工厂方法创建对象

利用工厂方法创建对个对象

示例:

function createPerson(name,age,sex){
//创建新对象
var obj = new Object();
//向对象添加属性
obj.name = name;
obj.age = age;
obj.sex = sex;
sayName:function(){
alert(this.name	);
} 
//将新对象返回
return obj;
}
var obj1 = createPerson("wa",18,"男");
var obj2 = createPerson("lu",20,"女");

九,构造函数创建对象

使用构造函数创建的对象,可以区分不同对象的类型
构造函数执行流程:

1,立即创建一个新对象
2,将新建的对象设置为函数中this,在构造函数可以使用this来引用新建对象
3,逐行执行函数中的代码
4,将新建的对象作为返回值返回

示例:

function Person(name,age,sex){
this.name = name;
this.age = age;
this.sex = sex;
}
var per = new Person();

十,构造函数/原型方式

使用这种混合构造方法在创建对象和类具有灵活性。其原理为:该方式对象的所有非函数属性使用构造函数定义,对象的函数属性使用原型方式定义。

示例:

//构造函数内定义属性
function Car(sColor,iDoors,iMpg){
this.color = sColor;
this.doors = iDoors;
this.mpg = iMpg;
this.drivers = new Array("Mike","Sue");
}
//原型定义函数方法
Car.prototype.showColor = function(){
alert(this.color);
}

十一,动态原型方法

该构造方式与构造函数/原型方式的基本思想相同,不同的方面在于赋予对象方法的位置发生变化,其原理与面向对象语言Java构造方法类似。

示例:

function Car(sColor,iDoors,iMgp){
this.color = sColor;
this.doors = sDoors;
this.mgp = iMgp;
this.drivers = new Array("Mike""Sue");

if(typeof Car._initialized == "underfined"){
Car.prototype.ShowColor = function(){
alert(this.color);
}
Cae._initialized = ture;
}
}

该构造方式中的"typeof Car._initialized"的部分最为关键,它来判断是否已给原型赋予了任何方法,该方法只创建赋值一次。

猜你喜欢

转载自blog.csdn.net/qq_42873753/article/details/84315490