1. 程式人生 > >js筆記:this的用法+ es6

js筆記:this的用法+ es6

回調 name 對象 筆記 兼容 返回 變量提升 {} 執行函數

1、this的用法:   this:     1、綁定事件的時候,事件"."前面是誰,this就是誰;     2、在函數執行的時候,看函數前有沒有".",如果有".",看"."前面是誰,函數裏的this就是誰,如果函數前面沒有“.”,函數裏的this是window     3、在回調函數中的this都是window;     4、自執行函數的this都是window     5、call可以改變函數中this;     6、構造函數中的this都是實例 2、call apply bind   call,apply,bind都是函數的方法; call的第一個參數就是用來修改this的,從第二個參數開始傳給fn,fn開始執行
apply和call的用法的區別: 都是改變函數中的this的 不同點: call 的一個參數是改變函數中的this,後面的參數是一一傳給 call前面的函數; apply 的一個參數是改變函數中的this,後面的參數是以數組的形式傳給apply前面的函數,其實內部也是一一傳的; bind方法: 也是用來改變this關鍵字的。 1)返回一個處理好this的新函數 2)和call、apply不同的是,改完this,call或者apply前面個函數會主動去執行;而bind不會;
在調用bind的時候就暫時不傳參數,直接改變this就可以。bind返回的新函數在執行的時候再傳參。 ps: 在ie低版本中是不兼容的 3、es6創建變量的兩種方法   1)let:可以創建一個變量,不能變量提升,在遇到{}時會形成塊級作用域。   2)const:const定義的都是常量,不能再去改變值。 4、數組的解構   ES6允許按照一定模式,從數組和對象中提取值,對變量進行賦值,這被稱為解構   可以從數組中提取值,按照對應的位置,對變量賦值,數組的元素是按次序排列的,變量的取值由他的位置決定。     var arr = [4,2,46,23];     var [a,b,c,d] = arr;   默認值:     var arr = [24,4,2];     var [name,age = 16(默認值)] = arr

js筆記:this的用法+ es6