<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script type="text/javascript"> window.onload=function(){ //1************************************************************************************************************** // var box=new Object(); //1:创建函数的基本方法 // box.name="feige"; // box.run=function(){ // alert(this.name+"runnig.....") // } // // box.run(); // //缺点就是如果要创建一个类似的对象要产生大量代码 //2工厂模式************************************************************************************************************** // // function createObj(name,age){ //共产模式创造对象 // var obj=new Object(); // obj.name=name; // obj.age=age; // obj.run=function(){ // alert(this.name+this.age+"running......"); // } // // return obj; //返回对象引用 // // } // function createObj2(name,age){ //共产模式创造对象 // var obj=new Object(); // obj.name=name; // obj.age=age; // obj.run=function(){ // alert(this.name+this.age+"running......"); // } // // return obj; //返回对象引用 // // } // var box1=createObj(‘feige‘,22);//创建第一个对象 // var box2=createObj(‘cc‘,22); //创建第二个对象 // box1.run(); // box2.run(); // var box3=createObj2(‘kkk‘,2); // // //PS:工厂模式虽然解决了重复实例化的问题,但是无法搞清楚他们到底哪个是对象的实例,例如下面的 // alert(box1 instanceof Object);//true // alert(box3 instanceof Object);//still true // // //3构造方法创造对象************************************************************************************************************** function Box(name,age){ //构造方法创造对象(改良后的工厂方法) this.name=name; this.age=age; this.run=function(){ alert(this.name+this.age); } } function Box2(name,age){ //构造方法创造对象 this.name=name; this.age=age; this.run=function(){ alert(this.name+this.age); } } var box1=new Box(‘CC‘,13); //实例化 var box2=new Box2(‘cc‘,21); //实例化 //alert(box1 instanceof Box); //alert(box2 instanceof Box);//与工厂模式不同可以区分出来实例,box2是Box2的对象的引用 //1.构造函数没有new Object但是后台会自动 var obj=new Object(); //2.this就相当于 obj //3.构造函数不需要返回对象引用,他是后台自动返回的 //规范 //1.构造函数也是函数,但是函数名第一个字母大写 //2.必须new 构造函数(),new Box() //3.必须使用new 运算符 var o=new Object();//对象冒充,可以把整个构造函数拿下来给o Box.call(o,"冒充",12) o.run(); } </script> </body> </html>
时间: 2024-10-07 02:28:20