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!
在日常写代码时弄清楚这俩样东西能为我们写代码带来很大的便利。