一直没弄太懂这两个函数方法怎么玩。今天认真把高程看了下。终于理解了。
- 首先,在js中,函数是对象,方法是对象上的定义的函数。可以把所有函数看作对象的方法。
- 那么,
fn.call( window, arg1, arg2)
(fn是函数)的意思,就是把fn看作window的方法,传入argument调用。即使window作用域中没有定义这一函数。。。 - 以此类推,可以把任一方法(或函数)给任一对象用。(不知道可不可以这样理解)
而apply与call的区别仅在于参数必须是arguments或数组。比如:fn.call( window, arg1, arg2)
用apply表示就是fn.apply( window, [arg1, arg2])
。
网友评论