zoukankan      html  css  js  c++  java
  • 小学生都能理解的原生js——call

    关于 js 作用域和执行上下文就不过多介绍了,本人也是在网上搜集了各种教程才逐渐理解,以下简单理解并说下call 的作用

    首先简单理解下执行上下文有关概念,this 的指向就代表当前执行环境的上下文

    function Person(name){
        this.name = name,
        this.speak = function(){
            console.log('my name is ' + this.name)
        }
    }
    var p = new Person('张三');
    p.speak()

    这里的this 就指new出来的对象,调用这个方法的对象

    call 简单的来说是改变this的执行上下文环境,改变this 的指向对象,把之前指向 pet 的this 指向了dog对象,所以this 的words属性 变成了dog 对象的属性。后面跟着的参数是执行函数的参数列表,apply 用法相同,后面的参数是参数数组

    var pet = {
        words:'hello',
        speak:function(say){
            console.log(say + ' ' + this.words)
        }
    }
    
    var dog = {
        words:'wang'
    }
    
    pet.speak('说话')
    
    pet.speak.call(dog,'叫')
  • 相关阅读:
    111111
    国际化(提取代码中文)
    分库操作(无事务)
    Nignx(四)location语法详解
    Nginx项目笔记
    SAX:进行XML解析
    流处理PDF、Base64
    JAVA8:stream流
    JPA一对多,多对一映射
    有关技术站点
  • 原文地址:https://www.cnblogs.com/inzaghihao/p/8386186.html
Copyright © 2011-2022 走看看