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);
  • 相关阅读:
    斯坦福【概率与统计】课程笔记(〇):前言
    斯坦福【概率与统计】课程笔记(二):从EDA开始
    dot
    左移右移
    树莓派系统烧写+网络配置
    windows上面捕获声卡数据
    python1
    继续进销存系统
    base64编码
    DES原理
  • 原文地址:https://www.cnblogs.com/-walker/p/6290023.html
Copyright © 2011-2022 走看看