es6箭頭函式
阿新 • • 發佈:2020-07-26
<script type="text/javascript"> let func1=function(){ console.log(this); console.log('普通無參匿名函式'); } func1(); let func2=()=>console.log('箭頭函式'); func2(); // 當然一個引數的時候,括號可以省略(我個人習慣,還是不省略,不然看著彆扭) let func3=a=>console.log(a); func3('ccc')// 兩個或者兩個以上引數情況 (括號不能省略) let func4=(a,b)=>a+b; console.log(func4(1,1)); let func5=(a,b)=>{ console.log(this) return a+b; } console.log(func5(1,1)); // 重要特性 箭頭函式沒有this,所以this是定義的時候,外部所在的物件是它的this。不是呼叫的時候的this; // 尋找的時候 找的是外部的function 假如沒有的話 就是this,假如有的話 就是外部function所在物件;let name='marry'; let obj={ name:'jack', age:11, getName:function(){ // console.log('xxx:',this) document.getElementById('btn').onclick=function(){ console.log('按鈕:'+this); } return this.name; }, getName2:()=>{ document.getElementById('btn').onclick=()=>{ console.log(this.name); } // console.log('yyy:'+this); } } // console.log(obj.getName()); console.log(obj.getName2()); </script>