call,apply,bind使用区别

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    var m = 我是全局的m
    function fn (a,b){
      console.log(a,b,this.m);
    }
    var obj = {m:我是obj的m}
    // 函数对象:将一个函数作为对象使用
    // 实例对象:new函数调用产生的对象简称为对象
    fn(2,3,4) // 2 3 "我是全局的m"
    fn.call(obj,2,3,4) // 2 3 "我是obj的m"
    fn.apply(obj,[2,3,4]) // 2 3 "我是obj的m"

    // bind返回一个新的函数
    fn.bind(obj,5)(2,3,4) // 5 2 "我是obj的m"
    fn.bind(obj,5,6)(2,3,4) // 5 6 "我是obj的m"
  </script>
</body>
</html>

 

call,apply,bind使用区别

上一篇:Android对象序列化


下一篇:移动端布局