apply,bind,call應用小總結

2021-08-01 18:28:19 字數 2075 閱讀 7925

//一、最大最小

//為什麼

//二、將偽陣列轉化為陣列

var arraylike = ;

//(必須以數字為屬性,必須有length屬性,length多了,就會多加undefined,length少了主動刪減多餘的)

var arr = array.prototype.slice.call(arraylike);

//arr為 ["1", "2"]

var arraylike = ;//arr為 ["1", "2",undefined]

var arraylike = ;//arr為 ["1"]

//三、陣列追加

var arr1 = [1,2];

var arr2 = [3,4];

.push(arr1,arr2);

//arr1 [1,2,3,4] ; arr2[3,4]

//四、判斷變數型別

function

isarray

(obj)

isarray() //true

//五、呼叫匿名函式

var animals = [

, ];for (var i = 0; i < animals.length; i++)

this.print();

}).call(animals[i], i);

}

二、bind

//1、建立繫結函式

this.x = 9;    //

this refers to global

"window" object here in the browser

varmodule =

};module.getx(); //

81var retrievex = module.getx;

retrievex();

// returns 9

var boundgetx = retrievex.bind(module);

boundgetx(); //

81

//2、預傳遞引數

function

list

() var list1 = list(1, 2, 3); // [1, 2, 3]

var leadingthirtysevenlist = list.bind(null, 37);

var list2 = leadingthirtysevenlist();

// [37]

var list3 = leadingthirtysevenlist(1, 2, 3);

// [37, 1, 2, 3]

//3.有settimeout時,this會自動指向window,用bind改變

function

latebloomer

() latebloomer.prototype.bloom = function

() ;

latebloomer.prototype.declare = function

() ;

var flower = new latebloomer();

flower.bloom();

// after 1 second, triggers the 'declare' methodfunction latebloomer()

// declare bloom after a delay of 1 second

latebloomer.prototype.bloom = function

() ;

//this均指向latebloomer這個自定義物件,

//latebloomer

latebloomer.prototype.declare = function

() ;

var flower = new latebloomer();

flower.bloom();

// after 1 second, triggers the 'declare' method

apply, bind, call方法剖析

是三種改變函式內部this指向 即函式執行時所在作用域 的方法。模擬原始碼 1.讓函式立即執行 2.改變函式內部的this指向 function.prototype.call function call context context context object context window co...

網路應用 web應用

world wide web tim berners lee 網頁 網頁互相鏈結 網頁 web page 包含多個物件 objects 物件的定址 addressing url uniform resoure locator 統一資源定位器 rfc1738 scheme host port path...

應用 原生應用和混合應用的區別

最近原生應用 web應用 混合應用的名字讓我們聽得比較熟悉了,現在我們就通過評析各種應用的優缺點來更進一步看看這三者的區別。一.原生應用 你使用過微軟powerpoint 或者 word吧?這些可直接在你電腦上執行或者在智慧型手機上執行,簡單來說,原生應用是特別為某種作業系統開發的,比如ios an...