zoukankan      html  css  js  c++  java
  • 你不知道的JS系列 ( 17 ) - 为什么使用 this

    var me = {
      name: 'Kyle'
    };
    var you = {
      name: 'Reader'
    }
    function identify(){
      return this.name.toUpperCase();
    }
    function speak(){
      var greeting = "Hello, I'm " + identify.call(this);
      console.log(greeting);
    }
    identify.call(me); // KYLE
    identify.call(you); // READER
    
    speak.call(me); // hello, 我是KYLE
    speak.call(you); // hello, 我是READER

    这段代码可以在不同的上下文对象(me 和 you)中重复使用函数 identify() 和 speak(),不用针对每个对象编写不同版本的函数。如果不使用 this,那就需要给 identify() 和 speak() 显式传入一个上下文对象。

    var me = {
      name: 'Kyle'
    };
    var you = {
      name: 'Reader'
    }
    function identify(context){
      return context.name.toUpperCase();
    }
    function speak(context){
      var greeting = "Hello, I'm" + identify(context);
    }
    identify(you); // READER
    speak(me); // hello, 我是KYLE

    随着你的使用模式越来越复杂,显示传递上下文对象会让代码变得越来越混乱,使用 this 则不会这样。this 提供了一种更优雅的方式来隐式“传递”一个对象引用,因此可以将 API 设计得更加简洁并且易于复用。



  • 相关阅读:
    JDBC MySQL 实例之 用户管理系统
    利用JDBC连接数据库(MySQL)
    CSS01
    HTML01
    GUI编程02
    GUI编程01
    名词解释
    Navicat MySQL安装
    Eclipse安装Web/JavaEE插件、Eclipse编写HTML代码
    Pascal输出星星
  • 原文地址:https://www.cnblogs.com/wzndkj/p/12393689.html
Copyright © 2011-2022 走看看