首页 > 编程语言 >JavaScript学习笔记—函数中的this

JavaScript学习笔记—函数中的this

时间:2023-01-16 20:23:30浏览次数:41  
标签:fn2 console 函数 JavaScript 笔记 name obj fn log

this

  • 函数在执行时,JS解析器每次都会传递进一个隐含的参数,即this
  • this会指向一个对象,所指向的对象会根据函数调用方式的不同而不同
    (1)以函数形式调用时,this指向的是window
    (2)以方法的形式调用时,this指向的是调用方法的对象
    ......
  • 通过this可以在方法中引用调用方法的对象
function fn(){
  console.log(this === window); // true
  console.log("fn打印", this); // fn打印,window
}
fn();

function fn2(){
  console.log("fn2打印", this);
}
const obj = {name:"孙悟空"};
obj.test = fn2;

const obj2 = {name:"猪八戒"};
obj.test(); // this为obj
obj2.test(); // this为obj2

const obj3 = {
  name:"沙和尚",
  sayHello: function(){
    console.log(this.name);
  }
};
const obj4 = {
  name:"唐僧",
  sayHello: function(){
    console.log(this.name);
  }
};
obj3.sayHello();
obj4.sayHello();

箭头函数的this:
  箭头函数没有自己的this,它的this由外层作用域决定,箭头函数的this和它的调用方式无关

function fn(){
  console.log("fn -->", this);
}
const fn2 = () => {
  console.log("fn2 -->", this);
};
const obj = {
  name:"孙悟空",
  fn,
  fn2,
  sayHello(){
    console.log(this);
  }
};
obj.fn(); // this -->, obj
obj.fn2(); // this -->, window

标签:fn2,console,函数,JavaScript,笔记,name,obj,fn,log
From: https://www.cnblogs.com/zibocoder/p/17055176.html

相关文章

  • ABB 800XA学习笔记19:系统架构10
    这一篇学习笔记我在新浪发表过,地址是ABB800XA学习笔记18:系统架构10_来自金沙江的小鱼_新浪博客(sina.com.cn)在这里我也发表一遍,以免丢失接着学习1.6配置工具1.6.1......
  • fabric学习笔记6
    Fabric2.0JavaSDK实践-合约交易20201303张奕博2023.1.161.Gateway在进行实践前,有一个比较新的概念需要了解就是Gateway。为了应对由于Fabric网络中的变化频繁所造成......
  • ABB 800XA学习笔记16:系统架构8
    这一篇学习笔记我在新浪博客发表过,地址是ABB800XA学习笔记16:系统架构8_来自金沙江的小鱼_新浪博客(sina.com.cn)在这里也记录一遍,以免丢失1.4.12AC800M冗余System80......
  • JS中利用include和some来写一个判断权限的公共函数
    1.include的用法includes可以判断一个数组中是否包含某一个元素,并返回true或者false['a','b','c'].includes('a')true['a','b','c'].includes(1......
  • ABB 800XA学习笔记17:系统架构9
    这一篇学习笔记我在新浪博客发表过,地址是ABB800XA学习笔记17:系统架构9_来自金沙江的小鱼_新浪博客(sina.com.cn)在这里我也记录一次,以免丢失继续学习,系统架构部分也没剩......
  • ABB 800XA学习笔记15:系统架构6
    今天继续学习。1.4系统拓扑800XA系统假定一个由计算机和设备组成的系统,这些计算机和设备通过不同类型的通信网络相互通信,如此处的概念所示。工作区使用专用客户端计算......
  • ABB 800XA学习笔记15:系统架构7
    继续学习1.4.5工厂网络工厂网络可以专用于过程自动化,也可以是站点上已有的工厂内部网的一部分。工厂网络与互联网或任何其他类型外部网络的进一步连接应按照适当的网络......
  • ABB 800XA学习笔记13:系统架构5
    这一片学习笔记我在新浪博客发表过,地址是ABB800XA学习笔记13:系统架构5_来自金沙江的小鱼_新浪博客(sina.com.cn)在这里也记录一遍,以免丢失接着学习。1.3.3直观的导航......
  • JavaScript 回调函数
    函数实际上是对象:它们能被“存储”在变量中,能作为函数参数被传递,能在函数中被创建,能从函数中返回;回调函数回调函数就是一个参数,将这个函数作为参数传到另一个函数里面,当......
  • 三剑客之深入awk学习笔记
    三剑客之awk学习笔记awk命令拼接$0打印源数据lstest|awk-F'[_]''{print"mv"$0,$1".jpg"}'ls|awk-F'.''{print"mv",$0,$1".jpg"}'|bash#拼接后的命令交......