ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### 箭头函数的本质(this的指向问题) ~~~ <button id="one">按钮</button> <script> var one=document.getElementById("one"); var id=100; one.onclick=function(){ //console.log(this.id); setTimeout(function(){ console.log(this.id); },1000) } console.log(window.id); /*全局变量本质上是window的属性,全局方法本质上是window的方法 setTimeout是window的方法 */ ~~~ ### 通常函数的定义方法 ~~~ var fn = function(...){ ...... } //例如: var add = function(a,b){ return a+b; } //或者: function fn(...){ ...... } //例如: function add(a,b){ return a+b; } ~~~ ### 简写方法速记 >##### 将原函数的“function”关键字和函数名都删掉,并使用“=>”连接参数列表和函数体。 ~~~ function add(a,b){ return a+b; } //简写为: (a,b)=>{//删掉了function和函数名 return a+b; } var add = function(a,b){ return a+b; } //简写为: var add = (a,b)=>{ //删掉了function return a+b; } ~~~ 箭头函数的语法: ~~~ (parameters) => { statements } ~~~ 如果没有参数,那么可以进一步简化: ~~~ () => { statements } ~~~ 如果只有一个参数,可以省略括号: ~~~ parameters => { statements } ~~~ 如果返回值仅仅只有一个表达式(expression), 还可以省略大括号: ~~~ parameters => expression // 等价于: function (parameters){ return expression; } ~~~ 补充: ~~~ function go(test){ var a=10; test(10) } /*回调函数将函数内部的值返回到外部*/ var test=function(res){ console.log(res); } go(function(res){ console.log(res); }) ~~~