js中call和apply

一、定義:數組

 apply:方法能劫持另一個對象的方法,繼承另一個對象的屬性.app

   如: Function.apply(obj,args),obj:這個對象將代替Function類裏this對象性能

                 args:這個是數組,它將做爲參數傳給Function。this

call:和apply的意思同樣,只不過是參數列表不同. spa

   如:Function.call(obj,[param1[,param2[,…[,paramN]]]]),obj:這個對象將代替Function類裏this對象prototype

                              params:這個是一個參數列表對象

二、示例: blog

首先, Person.apply(this,arguments)中this指向var student,也就是student竊取了Person方法,用student的參數去執行命名爲student的Person方法。在Student與Person參數順序不一致時用call直接指定對應參數(如Person(age,name)能夠用Person.call(this,age,name,grade)將student中參數順序更正)繼承

三、其餘用法io

能夠將數組轉爲參數列表;如var max=Math.max.apply(null,array),Array.prototype.push.apply(arr1,arr2)(但性能不如concat)

相關文章
相關標籤/搜索