最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Function.prototype.apply()與Function.prototype.call()小結

 更新時間:2016年04月27日 08:45:29   作者:Lapsec  
JavaScript 中,某個函數(shù)的參數(shù)數(shù)量是不固定的,因此要說適用條件的話,當你的參數(shù)是明確知道數(shù)量時,用 call,而不確定的時候,用 apply,然后把參數(shù) push 進數(shù)組傳遞進去。當參數(shù)數(shù)量不確定時,函數(shù)內部也可以通過 arguments 這個數(shù)組來便利所有的參數(shù)

老是忘掉這兩個東東的用下,寫下來做個記錄吧。
他們作用是一模一樣的,只是傳入的參數(shù)不一樣

apply

apply接受兩個參數(shù),第一個制定了函數(shù)體內this對象的指向,第二個參數(shù)為一個帶下標的集合(可遍歷對象),apply方法把這個集合中的元素作為參數(shù)傳遞給被調用的函數(shù):

var func = function(a, c, c){
  alert([a,b,c]); //[1,2,3]
}
func.apply(null, [1,2,3]);

call

call傳入的參數(shù)不固定,和apply相同的是,第一個參數(shù)也是代表函數(shù)體內的this指向,第二個參數(shù)開始往后,每個參數(shù)被依次傳入函數(shù):

var func = function(a, b, c){
  alert([a,b,c]); //[1,2,3]
}
func.call(null, 1,2,3);

call是aplly的一顆語法糖。如果第一個參數(shù)為null,函數(shù)體內的this指向宿主對象,在瀏覽器中是window。

call和apply的用途

1.改變this指向

上面的例子就是啦

2.Function.prototype.bind

模擬Function.prototype.bind

Function.prototype.bind = function(context){
  var self = this;
  return function(){
    return self.apply(context, arguments);
  }
};

var obj = {
  name: 'cxs'
};

var func = function(){
  alert(this.name); //cxs
}.bind(obj);

fun();

相關文章

最新評論

丽水市| 宝清县| 咸丰县| 柘荣县| 赫章县| 丁青县| 眉山市| 毕节市| 普宁市| 兰考县| 嫩江县| 宁夏| 常山县| 和林格尔县| 昭平县| 额敏县| 江口县| 沙洋县| 盱眙县| 若羌县| 廉江市| 神农架林区| 监利县| 威海市| 永泰县| 姚安县| 余干县| 镇宁| 铁力市| 浪卡子县| 民权县| 哈巴河县| 安多县| 沈阳市| 黔江区| 基隆市| 五河县| 陆河县| 敦煌市| 辽中县| 常州市|