批改状态:合格
老师批语:
代码块
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>作用域</title></head><body><script>// 全局作用域let a = 1;// 函数作用域let fuc =()=> {let c =2;return c;}console.log(fuc());// console.log(c);// 块作用域{let b = 1;}console.log(b);</script></body></html>效果图
代码块
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>闭包</title></head><body><script>let a = 1;let sum = (b,c) => {// b,c是形参,是自有的参数,c是自由变量,出现自由变量即为闭包return a+b+c;}console.log(sum(2,3));</script></body></html>效果图
代码块
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>原型与继承</title></head><body><script>function User(name) {this.name = name;// show()输出属性}// 构造函数要加newconst user = new User('root');console.log(user,typeof user);// user对象的原型属性永远指向他的构造函数的原型属性对象// user对象的原型console.log(user.__proto__)// user的构造函数的原型console.log(User.prototype);// 构造函数模拟类// 构造函数对象的原型对象上的成员,可以被所有实例共享User.prototype.show = function() {return {name: this.name}}console.log(user.show())const user1 = new User('admin');// 这时show方法已经搬到了user的原型上了,并不在user里面了console.log(user1);console.log(user1.show());class User1 {//构造函数constructor(a,b) {this.a = a;this.b = b;}// 原型方法(公共方法)show () {return {a: this.a , b:this.b}}// 静态方法static fetch () {return 'hello world!!!';}// 静态属性static me = '陈抟';//私有成员#age = 12;// 使用访问器属性get age() {return this.#age;}set age(value) {this.#age = value;}}const a = new User1(1,2);console.log(a.show());// 只有静态方法和静态属性可以直接用对象访问console.log(User1.fetch());console.log(User1.me);a.age = 100;console.log(a.age)// 继承class User2 extends User1 {// 第一步必须将父类的构造方法来执行以下,否者this用不了constructor(a,b,c) {super(a,b);// 第二步给子类的新成员赋值this.c = c;}// 父类的原型方法show () {return {a: this.a , b:this.b,c:this.c};}}const aaa = new User2(1,2,3);console.log(aaa.show());</script></body></html>
效果图
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号