在阐述构造器时,要先明确一下实例是什么?
实例是一个具体的对象,它是通过构造器、函数构造器或类构造器创建的。实例通常具有自己的属性和方法,也可以访问其构造器函数原型对象上定义的方法。
构造器
构造器(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