JS函数调用的四种方法:方法调用模式,函数调用模式,构造器调用模式,apply,call调用模式
1.方法调用模式:
先定义一个对象,然后在对象的属性中定义方法,通过myobject.property来执行方法,this即指当前的myobject
对象。
var blogInfo={
blogId:123,
blogName:"werwr",
showBlog:function(){alert(this.blogId)}
}
blogInfo.showBlog()
2.函数调用模式
定义一个函数,设置一个变量名保存函数,这时this指向到window对象。
var myfunc = function(a,b){
return a+b
}
alert(myfunc(3,4))
3.构造器调用模式
定义一个函数对象,在对象中定义属性,在其原型对象中定义方法。在使用prototype的方法时,必须实例化该对象才能调用其方法。
var myfunc = function(a){
this.a = a
}
myfunc.prototype = {
show:function(){alert(this.a)}
}
var newfunc = new myfunc("123123123")
newfunc.show()
4.apply,call调用模式
var myobject={}
var sum = function(a,b){
return a+b
}
var sum2 = sum.call(myobject,10,30)//var sum2 = sum.apply(myobject,[10,30])
alert(sum2)
Javascript中定义函数的方式有多种,函数直接量就是其中一种。如var fun = function(){},这里function如果不赋值给fun那么它就是一个匿名函数。好,看看匿名函数的如何被调用。 方式1,调用函数,得到返回值。强制运算符使函数调用执行(function(x,y){ alert(x+y)return x+y}(3,4))方式2,调用函数,得到返回值。强制函数直接量执行再返回一个引用,引用再去调用执行(function(x,y){ alert(x+y)return x+y} )(3,4)这种方式也是很多库爱用的调用方式,如jQuery,Mootools。 方式3,使用voidvoid function(x) { x = x-1alert(x)}(9)