当前位置: 首页 > news >正文

JavaScript中关于环境对象的拓展

1.环境对象的定义

环境对象指的是函数内的特殊变量this,this指向函数的调用者它代表当前函数的运行环境

在平常我们判断this经常用口诀谁调用它,它就指向谁,以下是几种常见情况

  1. 在全局作用域中,this指向window

   2.在函数中,他也指向他的调用者,如果是用函数名调用,则相当于window调用该函数,所以this指向window,如果是作为对象的方法调用时指向该对象

function fn() {console.log(1)}fn()//指向window

 

onst obj = {name: "Alice",greet: function() {console.log(`Hello, ${this.name}!`);}
};obj.greet();

 3. 在构造函数new..,this指向正在 创建的新对象

function Person(name) {this.name = name;
}const alice = new Person("Alice");
console.log(alice.name); 

   4.在监听事件中,this指向事件源

 const div = document.querySelector('div')div.addEventListener('click',function(){console.log(1)//此时this指向div})

5.箭头函数没有自己的this,它的this继承于外层作用域

2.构造函数

构造函数是一种特殊的函数,用于创建和初始化对象。

构造函数通常以大写字母开头,通过new调用

而用new调用构造函数创建一个新的对象的过程

1.创建一个新的对象

2.将this绑定到新对象上

3.初始化对象的属性/方法(函数)

4。返回这个新对象

function Person(name, age) {this.name = name;this.age = age;this.greet = function() {console.log(`Hello, I'm ${this.name}!`);};
}// 使用 new 创建实例
const alice = new Person("Alice", 25);
alice.greet(); // 输出: Hello, I'm Alice!

在日常写代码时弄清楚这俩样东西能为我们写代码带来很大的便利。


文章转载自:
http://bombshell.wjrtg.cn
http://carbamate.wjrtg.cn
http://abdomino.wjrtg.cn
http://chinanet.wjrtg.cn
http://archipelago.wjrtg.cn
http://benignity.wjrtg.cn
http://bosun.wjrtg.cn
http://aerogenically.wjrtg.cn
http://appreciator.wjrtg.cn
http://archie.wjrtg.cn
http://boggy.wjrtg.cn
http://bluesy.wjrtg.cn
http://amati.wjrtg.cn
http://anatoxin.wjrtg.cn
http://bowsman.wjrtg.cn
http://antiblack.wjrtg.cn
http://ceroplastic.wjrtg.cn
http://calamine.wjrtg.cn
http://auscultatory.wjrtg.cn
http://chamorro.wjrtg.cn
http://centile.wjrtg.cn
http://bullion.wjrtg.cn
http://cantilever.wjrtg.cn
http://automatous.wjrtg.cn
http://busyness.wjrtg.cn
http://apatite.wjrtg.cn
http://academical.wjrtg.cn
http://chemigraphically.wjrtg.cn
http://archivolt.wjrtg.cn
http://affirmant.wjrtg.cn
http://www.dtcms.com/a/281659.html

相关文章:

  • 【Qt】 设计模式
  • Docker 镜像推送至 Coding 制品仓库超时问题排查与解决
  • 业务分析业务架构视角
  • 软件测试面试经历分享?
  • 在 SymPy 中精确提取三角函数系数的深度分析
  • LLM面试题目 3
  • 项目进度与预算脱节,如何进行同步管理
  • Linux部署Redis
  • 46. 携带研究材料(01背包二维数组)
  • Java程序员学从0学AI(五)
  • 发票查验接口的计费规则-核验成功返回参数
  • SpringBoot集成RocketMQ的两种方式
  • WGAS+WGCNA分析文章套路
  • LeetCode Hot100 【1.两数之和、2.两数相加、3.无重复字符的最长子串】
  • 动态数组:ArrayList的实现原理
  • 504网关超时可能是哪些原因导致?
  • web前端渡一大师课 01 事件循环
  • 【交流等效负载电阻的推导】
  • SpringBoot 项目搭建的 4 种常用方式,从入门到实践
  • 魔力宝贝归来虚拟机版怎么修复卡第一个任务
  • Kimi K2驱动Claude Code,稳定且低价
  • 入选《机器视觉》:视觉AI 生态链加速工业检测场景落地
  • MySQL数据库----函数
  • vue3:wangEditor使用过程中,点击编辑回显数据的问题修复.
  • 操作HTML网页的知识点
  • 飞搭系列 | 子事件流节点,让逻辑复用更简单!
  • 【前端】Vue 3 页面开发标准框架解析:基于实战案例的完整指南
  • 第二次线上事故
  • 【leetcode】263.丑数
  • Unity 多人游戏框架学习系列一