1.函数作为参数进行传递
function a(str,fun){ console.log(fun(str)) }; function up(str){ return str.toUpperCase(); }; function down(str){ return str.toLowerCase(); }; a('Hello,World !',up) //HELLO,WORLD ! a('Hello,World !',down) //hello,world !
2.面向对象常用写法
1.模式 var Circle=function(r){ this.r=r; } Circle.PI = 3.14159; Circle.prototype={ area:function(){ return this.r*this.r*Circle.PI; } } var obj=new Circle(1.0); alert(obj.area()) 第1中写法扩展小实例 var show={ btn:$('.div1'), init:function(){ var that=this; alert(this); this.btn.click(function(){ that.change(); alert(this); }) }, change:function(){ this.btn.css({'background':'green'}); } } show.init(); 2.JSON写法 var Circle={ "PI":3.14159, "area":function(r){ return this.PI * r * r; } }; alert( Circle.area(1.0) ); 3.比较正规的写法 function Circle(r) { this.r = r; } Circle.PI = 3.14159; Circle.prototype.area = function() { return Circle.PI * this.r * this.r; } var c = new Circle(1.0); alert(c.area());
3.实例
<head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>新建网页 1</title> <mce:script type=text/javascript><!-- var person=function(name,age){//定义对象构造方法 this.name=name; this.age=age; } person.prototype={ //封装方法 getName:function(){ alert(this.name); }, getAge:function(){ alert(this.age); } } function test(){//声明调用 var man=new person('jack',12); man.getName() man.getAge() } var test2 ={ //类似静态方法 调用直接:test2.te();即可 te:function(){ alert(); }, te1:function(){ alert(); } } // --></mce:script> </head> <body> <input type=button onclick="test()"/> </body> </html>
4.混合模式
function createPerson(name,age){//构造函数加属性(属性都是不一样的所有放到属性里面写) this.name = name; this.age = age; } /*createPerson.prototype.showName = function(){//原型加方法 console.log(this.name) }; createPerson.prototype.showAge = function () {//原型加方法(方法都是一样的所以放到原型里写) console.log(this.age); };*/ createPerson.prototype={ showName:function(){ console.log(this.name); }, showAge:function(){ console.log(this.age); } }; var person1 = new createPerson('sunny','12'); var person2 = new createPerson('rain','24'); person1.showName();//sunny person1.showAge();//12 person2.showName();//rain person2.showAge();//24 console.log(person1.showName)//function(){console.log(this.name);}
console.log(person2.showName)//function(){console.log(this.name);}
console.log(person1.showName==person2.showName)//这回事同一个根函数