js怎么调用方法

JavaScript011

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)

如果你需要在外面调用 一个方法里面的方法  需要用 return 返回 才能调用, 否则 会因为作用域的的原因 无法调用  当然 这个方法为全局变量  或者 外层对象方法除外  举个栗子

function out () {

    function in () {}

}

in()  // 无法调用  因为in方法的作用域只局限在 out方法中 但是 

// 你可以这么做

function out () {

    function in () {}

    return in

}

out()() 

//  可以使用 out()()

// 如果一个方法中有很多方法  但是return只能返回一个 可以这样

function out () {

    function in1 () {}

    function in2() {}

    function in3 () {}

    return {in1, in2, in3} // 返回一个对象

}

out().in1() 

out().in2() 

out().in3()