1.通过构造函数来创建对象;
注意:尽量在原型中添加方法,在构造函数中添加属性,能够减少内存的占用,但是公共的属性和常量的值可以放到原型对象上去;
1 <script> 2 // 构造函数 3 function Sprite(){ 4 this.name='222'; 5 this.age='19'; 6 } 7 // 函数原型 8 Sprite.prototype.show=function(){ 9 console.log(this.name); 10 } 11 //通过构造函数创建的对象 12 var s=new Sprite(); 13 console.log(s.name);//222 14 console.log(s.age);//19 15 console.log(s.show);//show函数体; 16 </script>
2,把函数及对象的属性参数化:
1 <script> 2 function Sprite(name,color,age){ 3 this.name=name; 4 this.age=age; 5 } 6 Sprite.prototype.show=function(){ 7 console.log(this.name); 8 } 9 var s=new Sprite('sss','red',20); 10 s.show();//sss; 11 </script>
3.将参数对象化:
1 <script> 2 function Sprite(option){ 3 this.name=option.name; 4 this.age=option.age; 5 } 6 Sprite.prototype.show=function(){ 7 console.log(this.name); 8 } 9 var s=new Sprite({ 10 name:'222', 11 age:20 12 }); 13 s.show();//222; 14 </script>
4,初始化封装
1 <script> 2 function Sprite(option){ 3 this._init(option); 4 } 5 Sprite.prototype={ 6 _init:function(option){//初始化: 加下划线进行区分,这个仅用于内部调用。 7 this.name = option.name; 8 this.age = option.age; 9 this.color = 'red'; 10 }, 11 angleToRad:function(angle){ 12 return angle*Math.PI/180; 13 }, 14 show:function(arg){ 15 console.log(this.angleToRad(30)); 16 console.log('ss'+arg); 17 } 18 }; 19 var s=new Sprite({ 20 name: 'sss', 21 age: 19 22 }); 23 s.show('sunshine');//0.52 24 s.demo='ss';//sssunshine; 25 </script>