美文网首页
分号问题+函数中的this

分号问题+函数中的this

作者: zhangjingbibibi | 来源:发表于2018-05-08 14:21 被阅读0次

这篇文章写2个知识点:分号问题和函数中的this。

分号问题

  • js语句的后面可以不加分号
  • 是否加分号是编码风格问题,没有应不应该,只有你自己喜欢不喜欢
  • 在下面2种情况下不加分号会有问题
    • 小括号开头的前一条语句
    • 中方括号开头的前一句语句
  • 解决办法:在行首加分号
  • 强有力的例子:vue.js
  • 知乎热议:https://www.zhihu.com/question/20298345
var a = 3
  ;(function () {

  })()
  /*如果不加分号,就会变成这样
   错误理解
   var a = 3(function () {

   })();
  */

  var b = 4
  ;[1, 3].forEach(function () {

  })
  /*
   * 如果不加分号,就会变成这样
  错误理解
   var b = 4[3].forEach(function () {

   })
   */

函数中的this

  • this是什么?
    • 任何函数本质上都是通过某个对象来调用的,如果没有直接指定,那默认就是window
    • 所有函数内部都有一个变量this
    • 它的值是调用函数的当前对象
  • 如何确定this的值?
    • test() //window
    • p.test() //p
    • new test() //新创建的对象
    • p.call(obj) //obj
 function Person(color) {
    console.log(this)
    this.color = color;
    this.getColor = function () {
      console.log(this)
      return this.color;
    };
    this.setColor = function (color) {
      console.log(this)
      this.color = color;
    };
  }

  Person("red"); //this是谁? window

  var p = new Person("yello"); //this是谁? p

  p.getColor(); //this是谁? p

  var obj = {};
  p.setColor.call(obj, "black"); //this是谁? obj

  var test = p.setColor;
  test(); //this是谁? window

  function fun1() {
    function fun2() {
      console.log(this);
    }

    fun2();
  }
  fun1(); //this是谁? window

相关文章

  • 分号问题+函数中的this

    这篇文章写2个知识点:分号问题和函数中的this。 分号问题 js语句的后面可以不加分号 是否加分号是编码风格问题...

  • Hive 字符串中分号的处理

    在使用函数处理字符串时,如果字符串中有分号,则会遇到问题,因为分号是SQL的默认结束符,在HDFS中识别不了,需要...

  • VSCode中ESlint格式化校验双引号,空格、分号等配置

    分号,双引号问题 新建.prettierrc文件,添加 函数名空格问题 将Eslint语法禁用。编辑.eslint...

  • 多个单元格合并--四方法之三

    方法三:phonetic函数不可少 ❶ 输入分号; ❷每个姓名单元格后面连接分号; ❸ 输入phonetic函数公...

  • JS函数

    1、函数声明和函数表达式有什么区别 (*) ·函数声明后面没有分号,而表达式有分号。 ·函数声明有声明前置,而函数...

  • Kotlin学习集合

    学习01 飞机票 内容: kotlin的入口函数 解释main函数 kotlin中的;(分号) Java的基本数据...

  • 分号问题

    分号是Mysql语句的结束,默认会使用英文输入法。 前者是英文输入法下分号,后者是中文输入法下分号。必须使用英文输...

  • 分号问题

    现在有些人在讨(si)论(bi)关于 JavaScript 的语句加不加分号的问题,我的观点是:爱加不加。但前提是...

  • js事件函数问题

    事件标签内引入js函数分号(;)使用问题 问题描述:在复习到前端的js部分时,看到事件句柄调用事件处理函数时,有的...

  • java script - 函数基础(17)

    函数声明和函数表达式有什么区别 (*) 函数声明后面没有分号,而表达式有分号。 函数声明会前置,而表达式不会。 一...

网友评论

      本文标题:分号问题+函数中的this

      本文链接:https://www.haomeiwen.com/subject/xxzirftx.html