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

网站开发需要书籍百度推广seo怎么学

网站开发需要书籍,百度推广seo怎么学,山西省住房建设厅网站下载,域名安全检测中心在 ES6 的 class 中,super 关键字的行为在 构造函数 和 非构造函数(普通方法) 中有显著区别,主要体现在以下方面: 1. 构造函数中的 super 行为规则 必须显式调用: 在子类的构造函数中,必须先调…

在 ES6 的 class 中,super 关键字的行为在 构造函数非构造函数(普通方法) 中有显著区别,主要体现在以下方面:


1. 构造函数中的 super

行为规则
  1. 必须显式调用
    在子类的构造函数中,必须先调用 super(),才能使用 this。否则会抛出错误:

    class Child extends Parent {constructor() {this.name = "Alice"; // ❌ 错误:Must call super constructor in derived classsuper();}
    }
    
  2. super 作为函数调用
    super() 的作用是调用父类的构造函数,并初始化子类实例的 this

    • 参数需传递给父类构造函数。
    • 相当于 Parent.prototype.constructor.call(this, ...args)
  3. 调用顺序
    super() 必须位于构造函数的最顶部(在访问 this 之前)。

示例
class Parent {constructor(name) {this.name = name;}
}class Child extends Parent {constructor(name, age) {super(name); // ✅ 必须先调用 super()this.age = age;}
}const child = new Child("Alice", 10);
console.log(child.name); // "Alice"
console.log(child.age);  // 10

2. 非构造函数中的 super(普通方法)

行为规则
  1. super 作为对象使用
    在普通方法中,super 指向 父类原型(Parent.prototype),用于调用父类方法。

    • super.method() 等价于 Parent.prototype.method.call(this)
  2. 可调用父类原型方法
    通过 super 可以访问父类原型上定义的方法,但无法直接访问父类实例属性。

  3. 无需强制调用顺序
    可以在方法内任意位置使用 super,无需在访问 this 之前调用。

示例
class Parent {sayHello() {console.log("Hello from Parent");}
}class Child extends Parent {sayHello() {super.sayHello(); // ✅ 调用父类方法console.log("Hello from Child");}
}const child = new Child();
child.sayHello(); 
// 输出:
// "Hello from Parent"
// "Hello from Child"

关键区别总结

特性构造函数中的 super非构造函数中的 super
调用形式必须作为函数调用(super()作为对象调用(super.method()
必要性必须显式调用,否则报错可选调用(根据需要)
作用初始化 this,继承父类实例属性调用父类原型方法
访问 this 的时机必须在 super() 调用之后可直接使用 this(无需前置条件)
静态方法中的行为无(静态方法无构造函数)super 指向父类(而非父类原型)

静态方法中的 super

在静态方法中,super 指向 父类本身,而非父类原型:

class Parent {static staticMethod() {console.log("Parent static method");}
}class Child extends Parent {static staticMethod() {super.staticMethod(); // 调用父类的静态方法console.log("Child static method");}
}Child.staticMethod(); 
// 输出:
// "Parent static method"
// "Child static method"

常见错误场景

1. 构造函数中遗漏 super
class Child extends Parent {constructor() { // ❌ 未调用 super(),抛出错误}
}
2. 在非构造函数中误用 super()
class Child extends Parent {method() {super(); // ❌ 语法错误:'super' keyword unexpected here}
}
3. 错误访问父类实例属性
class Parent {constructor() {this.value = 42;}
}class Child extends Parent {getValue() {return super.value; // ❌ 无法通过 super 访问父类实例属性(返回 undefined)}
}const child = new Child();
console.log(child.getValue()); // undefined

总结

  • 构造函数中的 super
    强制调用,用于初始化 this,确保父类实例属性正确继承。
  • 非构造函数中的 super
    用于调用父类原型方法,无需强制顺序,但需注意 super 的指向。
  • 静态方法中的 super
    指向父类本身,用于调用父类静态方法。
http://www.dtcms.com/wzjs/62867.html

相关文章:

  • 做淘宝还是做网站容易产品推广方式及推广计划
  • 政府网站建设价格脚上起小水泡还很痒是什么原因
  • 深圳市建委网站网站建设平台
  • 做网站的分页查询全网营销代运营
  • 毕业生就业网站开发项目推广网站推广
  • 佛山网站开发网络营销专业培训学校
  • 税务 网站建设 重视北京网站seowyhseo
  • 番禺建设网站策划找索引擎seo
  • 模板网站建设教程账号权重查询
  • 江西做网站建设关键词排名优化工具有用吗
  • 有域名后怎么建网站报个电脑培训班要多少钱
  • 淘宝客网站源码和模版有什么区别网站关键词快速排名工具
  • 江都微信网站建设自己如何优化网站排名
  • 舟山建设信息港网站深圳互联网推广公司
  • 天安节能科技园公司做网站可以引流推广的app
  • 网站建设策划书的编制百度网站推广关键词怎么查
  • 税务局网站模板快速优化工具
  • 怎样做网站 app教程营业推广的方式
  • 桥西企业做网站seo营销策略
  • java做网站要学什么百度移动端模拟点击排名
  • 义乌网站建设公司排名免费的云服务器有哪些
  • 做网站为什么没收入3322免费域名注册
  • c 网站开发临汾网络推广
  • 西部网站管理助手4.0郑州seo技术代理
  • 南昌自助建站怎样在百度答题赚钱
  • 简单的小手工seo快速优化方法
  • 佛山市城乡住房建设局网站手机端关键词排名优化软件
  • 做搜狗网站优化首页网络推广方案例子
  • 网站模板下载 免费重庆seo是什么
  • 宁波做微信网站公司网站建设需要多少钱