js怎么调用方法

JavaScript010

js怎么调用方法,第1张

1:方法调用模式。

请注意this此时指向myobject。

/*方法调用模式*/

var myobject={

value:0,

inc:function(){

alert(this.value)

}

}

myobject.inc()

2:函数调用模式

请注意this此时指向window

/*函数调用模式*/

var add=function(a,b){

alert(this)//this被绑顶到window

return a+b

}

var sum=add(3,4)

alert(sum)

3:构造器调用模式

javascript语言精粹一书建议摒弃这中方式。因为有更好的方式。这里先不介绍。下次发表博文的时候贴出来。

会在这里加一个连接。

/*构造器调用模式 摒弃*/

var quo=function(string){

this.status=string

}

quo.prototype.get_status=function(){

return this.status

}

var qq=new quo("aaa")

alert(qq.get_status())

4:apply调用模式

==我们可以来看一个更有用的apply实例。看最下面的代码。

/*apply*/

//注意使用了上面的sum函数

//与myobject

//这中调用方式的优点在于可以指向this指向的对象。

//apply的第一个参数就是this指针要指向的对象

var arr=[10,20]

var sum=add.apply(myobject,arr)

alert(sum)

JS动态调用方法名

1.方法就是使用js里面的eval 下面是自己写的例子 代码如下: call("showmsg")functioncall(functionName){ eval("this."+functionName+"()")}functionshowmsg(){ alert("success")} eval能将你拼接的字符串自动识别为方法,并调用。 但弊端也是很大的,想象一下,某个人改你调用地方的方法名,便能调用你的任意方法。

2.方法主要用作自己定义的方法 主要是第二种方法需要特定的方式去写 代码如下: functioncall(functionName) { showmsgs["showmsg"]()}varshowmsgs

window.alert(p.getName1()+"\n" + People.getName2() + "\n" + p.getName3())

这里先执行括号里所有的内容,再执行最外层的window.alert,

所以读到 People.getName2()  时,函数内的alert就先弹出来了,

因为getName2只有一个alert方法,this.nameObject自带的方法,会返回当前对象的全名,

所以弹出显示People,

构造函数People里虽然有this.name,但是构造函数没实例化是无法调用内部的属性,

所以People.getName2() 返回的是undefined,