构造函数的写法(重点)
一、基本信息
构造函数描述: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(){};