首页 > 编程语言 >JavaScript中的this指向

JavaScript中的this指向

时间:2024-10-19 23:32:54浏览次数:7  
标签:绑定 函数 指向 JavaScript 默认 调用 fn

1.函数在调用时,JavaScript会默认给this绑定一个值;
2.this的绑定和定义的位置(编写的位置)没有关系;
3.this的绑定和调用方式以及调用的位置有关系;
4.this是在运行时被绑定的;

this的绑定规则

规则一:默认绑定

在函数独立调用时使用默认绑定,可以理解为函数没有被绑定到某个对象上

常见的默认绑定

  // 函数独立调用
    function foo{
  console.log(`this指向${this}`)
  }
  foo()//this指向的是window
  // 函数在对象中但是是默认调用
    const obj = {
    fn:function(){
      console.log(`this指向${this}`)
    }
  }
  const bar = obj.fn
  bar()//this指向window
  // 函数的参数默认调用
  function baz(fn){
         fn()
  }
  baz(obj.fn)//this指向window

标签:绑定,函数,指向,JavaScript,默认,调用,fn
From: https://www.cnblogs.com/hdc-web/p/18486729

相关文章

  • popmotion,一款神奇的 JavaScript 开源动画库
    一、Popmotion简介Popmotion是一款强大的JavaScript开源动画库。它具有轻量、灵活且高性能的特点。(一)轻量性它的代码体积较小,不会给项目带来过多的负担。这使得在各种规模的Web应用中都能轻松集成,无论是简单的小型网站还是复杂的大型单页应用。(二)灵活性1.动画类型多样......
  • javascript-类型
    1.number使用64位浮点数表示范围+-1.797*10(308次方),+-5*10(-324次方),相当于C++的double整数-2(53次方)2(53次方)十六进制0x开头例0xff八进制0o开头0io377二进制0b开头使用e表示浮点数6.02e231.47e-322.数的计算,在math类中有很多方法。3.没有上溢,下溢。但有无限大无......
  • JavaScript从零学起 —— 数据类型(进阶篇3)
    说明:此文章用作个人学习记录,若有任何问题或建议欢迎大家在评论区讨论文章目录前言对象(Object)1.定义2.对象创建方式2.1使用对象字面量(ObjectLiteral)2.2使用Object()构造函数2.3使用自定义构造函数(ConstructorFunction)2.4工厂函数(FactoryFunction)2.5类(Cl......
  • 挑战1000道javascript手写题之实现Promise.all(9)
    Promise.all介绍Promise.all方法接收一个数组作为参数,这个参数数组的元素也都是promise实例,该方法返回一个promise示例。constp=Promise.all([p1,p2,p3]);p的状态由p1、p2、p3决定,p最后的状态要么是变成fulfilled,要么变成rejected。变成fulfilled:只有当p1、p2、p3......
  • [Javascript] Write Promise.all()
    Promise.myAll=function(promises){letres,rej;constp=newPromise((resolve,reject)=>{res=resolve;rej=reject;});leti=0;letresult=[];//sincePromise.allcantakeanyiterableasinput//tocheckwhether......
  • javascript渲染OFD的库
    目前使用javascript开发的OFD的渲染库主要有两个:ofd.js和liteofd,其中ofd.js开发比较早,liteofd是最近刚出现的js库。首先结论是ofd.js渲染效果没有liteofd好,因为ofd.js目前有一些效果没有支持,比如对字体没有比较好的解析和支持。liteofd相对ofd.js效果更好,并且提供的接口方法更多......
  • [Javascript] Write .call()
    Function.apply.myCall=function(ctx,...args){ctx=ctx===null||ctx===undefined?globalThis:Object(ctx);constfn=this;constkey=Sybmol("fn");//wedon'twantusercansee[Sybmol("key")]inFunctionpro......
  • ​Meteor:全栈JavaScript开发框架的先驱
    Meteor是一个功能强大且易用的全栈JavaScript框架,它简化了现代Web应用的开发流程,从数据库到用户界面都可以通过一套统一的技术栈来实现。无论你是构建实时应用还是想要一个快速的原型开发工具,Meteor都能为你提供完整的解决方案。本文将详细介绍Meteor的显著特性、使用方式......
  • JavaScript 数据类型转换全解析:转换为数值、字符串与布尔型
    目录非VIP用户可前往公众号“前端基地”进行免费阅读转换为数值型转换为数值型Number()函数parseInt()函数parseFloat()函数转换为字符串型转换方法toString()函数String()函数转换为布尔型转换方法Boolean()函数非VIP用户可前往公众号“前端基地”进行免......
  • JavaScript初级课程 variables
    下载node。1.申明变量variables.jsletmessage="Hello!";message="World";console.log(message);nodevariables.js2.申明不会变的变量constCOLOR_GREEN="green";console.log(COLOR_GREEN)3.数据类型DataTypes=[number,BigInt,string......