zoukankan      html  css  js  c++  java
  • call和apply的作用实例

    <script>
        var scopeTest = function(){ //考察了 this 的含义
        window.a=2;
        function fn(b){
            this.b = b;
            console.log(this.a);
        }
        var obj = {a:4,fn:fn};
        /*
            gl: a = 2
                fn 
                obj
        */
        fn();//2
        
        obj.fn();//4    this指向window
        fn.call(obj);//4    this指向obj
        fn.call(null);//2    当参数为null时this指向window
        fn.apply(obj);//4    this指向obj
        fn.apply(null);//2    当参数为null时this指向window
        var fninstance = new fn(8);//undefined  fn()执行 this指向fninstance 
        console.log(fninstance.b);//8    this指向fninstance 参数为8
        
        }();
    
      </script>

    实例2

     <script>
        function fruits() {} 
        fruits.prototype = {
            color:"red",
            say: function() {console.log(this.color);}
        }
        var apple = new fruits();
         
        apple.say();//red
        var banana = {color:"yellow"};//
        apple.say.call(banana);//yellow this指向banana
        apple.say.apply(banana);//yellow this指向banana
    
      </script>

    实例3

    var obj = {
            name: 'jim',
            getName:function(){
                console.log( this.name );
            }
        }
        var obj2 = {
            name:'tom'
        }
        obj.getName.call(obj2);
  • 相关阅读:
    JQuery
    CSS
    函数装饰器
    函数
    模块和运算符
    前端编程基础
    MySQL优化指南-大表优化思路
    Linux命令find讲解
    LeetCode每日题解(0324)
    Kmeans算法的经典优化——mini-batch和Kmeans++
  • 原文地址:https://www.cnblogs.com/jokes/p/9713640.html
Copyright © 2011-2022 走看看