JavaScript之创建对象方法

创建对象过程中总会有大量重复的代码,可以把重复的代码提取到方法函数中,要用时调用即可。

使用工厂方法创建对象,通过该方法可以大批量地创建对象。

function createPerson(name,age,gender){ 

var obj =new object();//创建一个新的对象

obj.name=name;

obj.age=age;

obj.gender=gender;

obj.sayName =function(){

alert(this.name);

};

return obj;//将对象返回

}

var  obj2 = createPerson("猪八戒",28,“男”);

构造函数

//用来创建狗的对象

function createDog(name,age){

var obj =new object();

obj.name=name;

obj.age=age;

obj.sayhello =function{

alert("旺旺~~");

};

return obj;

}

使用工厂方法创建的对象,使用的构造函数都是object,所以创建的对象都是object这个类型,就导致我们无法区分多种不同类型的对象。

构造函数就是一个普通的函数,创建函数和普通方式没有区别,不同的是构造函数习惯上首字母大写。

构造函数和普通函数的区别就是调用方式的不同, 普通函数是直接调用,而构造函数需要使用new关键字来调用。

构造函数的执行流程:

* 1.立刻创建一个新的对象

* 2.将新建的对象设置为函数中this,在构造函数中可以使用this来引用新建的对象

* 3.逐行执行函数中的代码

* 4.将新建的对象作为返回值返回

function Person(name , age , gender){

this.name = name;

this.age = age;

this.gender = gender;

this.sayName = function(){

alert(this.name);

};

}

this的情况:

* 1.当以函数的形式调用时,this是window

* 2.当以方法的形式调用时,谁调用方法this就是谁

* 3.当以构造函数的形式调用时,this就是新创建的那个对象

使用同一个构造函数创建的对象,我们称为一类对象,也将一个构造函数称为一个类。

* 我们将通过一个构造函数创建的对象,称为是该类的实例

使用instanceof可以检查一个对象是否是一个类的实例

语法:

对象 instanceof 构造函数  如果是,则返回true,否则返回false

//console.log(per instanceof Person);true 

//console.log(dog instanceof Person); false 

所有的对象都是Object的后代,

 所以任何对象和Object左instanceof检查时都会返回true

你可能感兴趣的:(JavaScript之创建对象方法)