zoukankan      html  css  js  c++  java
  • 函数四种调用模式以及其中的this指向

    第一种:函数直接执行模式

    function add(a,b){
                console.log(this);
                return a+b;
            }
      add(10,20)//this===window

    第二种:对象方法的调用模式

    var obj={
                name:'aaa',
                age:20,
                said:function(){
                    console.log(this);
                }
            }
    obj.said();//this===obj,此处this指代被调用者

    第三种:构造器的调用模式

    function School(){
                this.said=function(){
                    console.log(this);
                }
            }
    var nanj=new School();
    nanj.said();//对象调用自己的方法,this===nanj,类似上面

    第四种:call和apply调用模式

            function change(a,b){
                this.detial=a*b;
                console.log(this);
            }
            var p={};
            change.call(p,4,5);//此处的this===p
            console.log(p.detial);
            var q=[];
            change.call(q,5,10)//this===q
            console.log(q.detial);
    
            //apply和call一样的用法,只不过apply第二个参数用数组进行传递
            var arr=[];
            change.apply(arr,[10,10]);//this===arr
            console.log(arr.detial);
    
            var str={};
            change.apply(str,[20,20]);//this===str
            console.log(str.detial);
  • 相关阅读:
    1-6.webpack对字体图标和图片的处理
    1-5.Webpack对Html模板处理
    1-4.Webpack对样式的处理
    1-3.Webpack对脚本的处理
    1-2.Webpack初始化
    1-1.mmall电商项目搭建
    Java 随心笔记11
    Java 随心笔记10
    Java 随心笔记9
    Java 随心笔记8
  • 原文地址:https://www.cnblogs.com/-walker/p/6290023.html
Copyright © 2011-2022 走看看