构造函数也是一个普通函数,创建方式和普通函数一样,但构造函数习惯上首字母大写
function objectone(text){ //普通函数
var test=new Object();
test.t=300;
test.run = function(){
return (this.t - text );
}
return test;
}
var Object1 = objectone(1); //普通函数的调用方式:直接调用 person();
function Objecttwo(text){ //构造函数 this相当于后台自动 new Object
this.t=300;
this.run = function(){
return (this.t - text );
}
//return this; 不需要return 不需要返回对象引用
}
var Object2 =new Objecttwo("1"); //构造函数必须使用new运算符来调用 new Person();
// alert(Object1.run()); //299
// alert(Object2.run()); //299
// alert(Object1 instanceof Objectone); false//不可以识别对象
// alert(Object2 instanceof Objecttwo); true//可以识别对象引用是来自Objecttwo
//alert(Objecttwo("1")); //undefined //不可使用普通函数调用方法
var Object3 = new Object();
Objecttwo.call(Object3,2); //构造函数对象冒充
//alert(Object3.run()); //298 //不可使用普通函数调用方法