批改状态:合格
老师批语:函数与对象, 讲一天一夜都不过分, 好好研究

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>箭头函数语法</title></head><body><script>// 1. 无参数let f1 = function () {console.log("f1()");};f1();// 箭头函数,没有参数,圆括号不能省f1 = () => console.log("->f1()");f1();// IIFE:立即函数// (() => console.log("->f1()"))();console.log("---------");// 2. 单个参数let f2 = function (item) {console.log(`f2(${item})`);};f2("item");// 箭头函数f2 = (item) => console.log(`->f2(${item})`);f2("item");console.log("---------");// 3. 多个参数let f3 = function (...items) {console.log("f3()", items);};f3(1, "a", 3, 4);// 箭头函数,多条语句时一定要加大括号{}f3 = (...items) => {console.log(this);console.log("->f3()", items);};f3(5, 6, "b", 8);</script></body></html>

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>箭头函数的一个小案例</title></head><body><script>let user = {// 属性name: "小刘",// 方法getName: function () {// 解决了this指向问题setTimeout(() => {console.log(this);console.log("My name is ", this.name);}, 1000);},};user.getName();// 箭头函数主是要替代之前的函数表达式// 箭头函数没有自己的this,支持词法作用域/块级作用域</script></body></html>

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>es6中的class类</title></head><body><script>// 原生js中没有类, 通过"构造函数"模拟类function Person(name) {// 属性this.name = name;}// 公共方法放在函数的原型对象上Person.prototype.sayName = function () {return this.name;};let person = new Person("小李");let person1 = new Person("小刘");console.log(person);console.log(person1);// es6方法class PersonClass {// 构造方法constructor(name) {this.name = name;}// 原型方法sayName() {return this.name;}}person = new PersonClass("小王");console.log(person.sayName());// 函数, 任何一个函数都有下面二个function fn(a, b) {}console.dir(fn);// prototype: 原型属性: 当函数是构造函数时,才有用// __proto__: 原型链属性, 因为函数也是对象console.log(fn instanceof Object);// 对象: 任何对象都有一个__proto__console.log({});console.log({}.toString());// __proto__: 原型链属性// 构造函数的原型属性 prototype,上面是当前构造函数的所有实例所共享的属性和方法function A() {}console.dir(A);let a = new A();console.log(a);// 1. 函数有二个重要的属性// 原型属性: prototype, 做为构造函数的时候才会用到,当该属性的指针指向新对象的__proto__// 原型链属性: __proto__, 因为任何一个对象都有这个属性,指向自己的公共方法,函数也是对象,当然也有这个属性</script></body></html>
this当前变量指向问题prototype、__proto__
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号