构造函数的写法(重点)

一、基本信息

构造函数描述:new后面的函数称为构造函数,例如:var p1 = new CreatePerson('小明');

this指向:构造函数里的this为新创建的对象

返回值:默认为新创建的对象,可不写

写法:

function CreatePerson(name,sex){ 
    this.name=name;  //添加属性
    this.showSex=function(){};  //添加方法
}
var p1=new CreatePerson("blue","男");  //创建构造函数

 

二、与不通过new创建的函数的区别

1、this指向

(1)直接调用函数:函数内部的this指的是window

(2)函数调用前加new(构造函数):函数内部的this指的是新创建的对象

function show(){
    alert(this);
}
show();   //this指向为window
new show();   //this指向为新创建的object

2、返回值

(1)没通过new创建函数:需要自己添加返回值

function createPerson(name){
    var obj = new Object();  //需要自己new一个对象
    obj.name = name;
    return obj;  //自己设置返回值    
}
var p1 = createPerson('小明');

(2)通过new创建函数:

描述:系统默认返回值为新创建的对象,不需要自己设置,称为隐式返回

 

三、系统构造函数

系统对象构造函数的名称:

数组:Array

修改系统构造函数:(不建议修改)

写法:Array.prototype.函数名= function(){};

Array.prototype.函数名= function(){};

 

posted @ 2017-04-25 10:58  念念念不忘  阅读(1235)  评论(0)    收藏  举报