26 进阶:函数

2019-02-27  本文已影响0人  Ga611

课堂笔记

1.function f(){}
2.var f = function(){}
3.var x = function y(){}
//当函数y被赋值给变量x之后,y这个变量的作用域就只存在与函数内部,在函数外部y不再可以被访问
4. 箭头函数: (x,y)=>{return x+y}
5.var f = new Function('x','y','return x+y')

需要注意的是,箭头函数内部的this没有特殊含义,就像一个一般变量一样,如下面代码

var a = {
    b:{
        c:()=>{console.log(this)},
        d:function(){console.log(this)}
       }
}
a.b.c()//Window
a.b.d()//b
var x = function y(){}
x.name === 'y' //true
var f = new Function('x','y','return x+y')
f.name // 'anonymous'

函数有自己的作用域。它的作用域与变量一样,就是其声明时所在的作用域,与其运行时所在的作用域无关。

for(let i=0;i<li.length;i++){
  li.onclick = function(){console.log(i)}
}

当<li>被点击时,打印出的值为6。代码执行for循环为每个<li>绑定函数,函数执行的时候for 循环已经结束。

image.png
function f(){console.log(this)}
f.call(1) // Number{1}
f.call('s') //String {"s"}
f.call(true) //Boolean {true}
image.png image.png
上一篇 下一篇

猜你喜欢

热点阅读