javascript call的使用
?
Javascript中call的使用自己感觉蛮纠结的,根据文档很好理解,其实很难确定你是否真正的理解。
call 方法
应用于:Function 对象
调用一个对象的一个方法,以另一个对象替换当前对象。
call([thisObj[,arg1[, arg2[,? ?[,.argN]]]]])
参数:
thisObj?
可选项。将被用作当前对象的对象。?
arg1, arg2, , argN?
可选项。将被传递方法参数序列。?
说明:
call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。
1.最基本的理解:示例1
自定义一个类,该类有一个方法showTxt,用来显示当前对象的name值。
创建一个对象,并且该对象的name值等于test1。
使用call方法,使新创建的对象obj添加Class1类的showTxt方法,即把Class1类中的this.showTxt中的this指定成obj,这样obj就有了showTxt方法。弹出"test1"。
?
f2.call()//2
?
需要十分注意的是f1.call是方法,f1是函数对象,这两者在call时是有区别的。
转:http://hszy00232.blog.163.com/blog/static/43022753201131835653841/