美文网首页
this和函数调用语法糖

this和函数调用语法糖

作者: size_of | 来源:发表于2017-08-28 23:21 被阅读0次
var obj = {
  init:function(){
    console.log(this.id);
  },
  id:1
}

调用函数时的obj.init()是一种语法糖,其实浏览器的调用形式是obj.init.call(obj)
如果我们还有一个对象

var obj2 = {
  id:2
}

我们按正规的方式调用obj.init.call(obj2)时我们会发现,这时init函数里的this变成了obj2。
js的对象是松散的,我们可以通过call这样的函数,让对象调用其他对象的方法。
所以我们一定要注意与下面类似的代码:

button.onclick = this.click

其实当你点击按钮时click函数的调用形式是这样:

this.click.call(button)

也就是click内部的this其实是你点击的元素!!

相关文章

  • autoreleasepool源码探索

    一、语法糖 { Person person; } 语法糖,先调用构造函数,出大括号调用析构函数 Person::t...

  • this和函数调用语法糖

    调用函数时的obj.init()是一种语法糖,其实浏览器的调用形式是obj.init.call(obj)如果我们还...

  • shell编程之函数

    1.函数的定义和语法 函数由两部分组成:函数名和函数体 语法一: 语法二: 语法三: 2.函数调用 调用:函数只有...

  • Flutter实例解析

    语法糖: 同理: 前半句是一个语法糖: 原本应该类似包含: 调用超类构造函数: 实际这个构造方法很长。 附注: 可...

  • Java try-with-resources

    try-with-resources 是个语法糖,实际上就是自动调用资源的 close() 函数 try 语句多了...

  • 004-函数

    函数介绍 函数概念 函数的定义和调用函数的定义(函数可以重复调用,不能重复定义)语法格式:def 函数名(): ...

  • React 深入 JSX(10)

    JSX JSX 其实是 React.createElelment 函数调用的语法糖 JSX 会将代码编译成 Rea...

  • JS 学习笔记 | 函数进阶

    1.函数的定义和调用 1.1 函数的定义方式 1.1.1 函数声明 语法: 1.1.2 函数表达式 语法: 1.1...

  • kotlin之reified

    参考 这个是为了满足inline特性而设计的语法糖,因为给函数使用内联之后,编译器会用其函数体来替换掉函数调用,而...

  • promise3

    等待它resolve then的语法糖 不管成功失败都会调用 不想两次都调用同一个函数就可以用

网友评论

      本文标题:this和函数调用语法糖

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