在阐述构造器时,要先明确一下实例是什么?
实例是一个具体的对象,它是通过构造器、函数构造器或类构造器创建的。实例通常具有自己的属性和方法,也可以访问其构造器函数原型对象上定义的方法。
构造器
构造器(constructor)是一种特殊的函数,用于创建实例,构造器通常以大写字母开头,这样可以与普通函数区分开来。
语法规则:
new Constructor[(arguments)]
上面语句中 Constructor 就是我们常说的「构造器」,使用 new 关键字声明实例:
obj = new Constructor;
obj = new Constructor();
obj = new Constructor(arg1,arg2…)
构造器:创建和初始化「对象」的一般性方法,需要使用 new 运算符让构造器产生实例。
在面向对象编程的语言中,有两种常见的构造器实现方式「函数构造器」和「类构造器」,下面我们来分析下这两种方法的概念和使用方法。
//最简单的类声明
class MyObject {}
//构造函数声明风格
function MyObject() {}
//变量声明风格
const MyObject = new Function;
function MyObject() {
console.log(\\\'构造过程...\\\')
}
class MyObject{
constructor(){
console.log(\\\'构造过程...\\\')
}
}
function MyObject() {
console.log(\\\'构造过程...\\\')
}
//声明属性
MyObject.prototype.aName = \\\'value\\\';
MyObject.prototype.aMethod = function(){
//方法内容...
};
class MyObject{
get aName(){
//声明读方法...
}
set aName(value){
//声明写方法...
}
//声明方法
aMethod() {
//方法内容...
}
}
function MyObject(name) {
this.name = name;
}
function MyObjectEx(name, x) {
MyObject.call(this, name);
this.x = x;
}
class MyObjectEx extends MyObject{
constructor(){
super();//必须在引用 this 之前调用
this.x = 100
}
}
function MyObject(name) {
this.name = name;
}
MyObject.prototype.aMethod = function() {
console.log(\\\'Hello, my name is \\\' + this.name);
};
class MyObjectEx extends MyObject{
foo(){
super.aMethod()
}
}
静态成员
访问类静态成员的时候不需要创建对象实例,我们可以通过类构造器或函数构造器来定义静态成员。
内容来源于《JavaScript 语言精髓与编程实战》
部分内容来源于 ChatGPT
原创文章,作者:小道研究,如若转载,请注明出处:https://www.sudun.com/ask/34498.html