构造函数和类
实例: 是由类或构造函数创建的具体对象,通过 new
关键字调用构造函数创建,或通过 class
关键字定义类并创建
类方法/静态方法:它是定义在类或构造函数本身上的方法,通过类或构造函数调用,不能通过实例调用
1.通过构造器创建实例创建静态方法
函数通过关键字 function 定义。函数同样可以通过内置的 JavaScript 函数构造器(Function())定义。构造函数又称为构造器。
构造函数也是一个普通的函数,命名以大写字母开头,从表现形式来说,和普通的函数没有任何区别。
构造方法是一种特殊的方法:
- 构造方法名为 constructor()。
- 构造方法在创建新对象时会自动执行。
- 构造方法用于初始化对象属性。
- 如果不定义构造方法,JavaScript 会自动添加一个空的构造方法
function Person(name, age) { this.name = name; this.age = age; this.describe = function() { //定义实例方法 return this.name + " is " + this.age + " years old"; }; } var person1 = new Person("Alice", 30); console.log(person1.describe()); // 输出: Alice is 30 years old
构造函数内部定义方法是一种常见的做法,但这种方法会导致每个实例都会重新创建这些方法,从而占用更多的内存。为了优化内存使用,通常推荐在构造函数的原型(prototype)上定义方法,这样所有实例都会共享同一个方法,从而减少内存消耗。
因此上面的建议改成:
function Person(name, age) { this.name = name; this.age = age; } Person.prototype.describe = function() { //定义静态方法 return this.name + " is " + this.age + " years old"; }; var person2 = new Person("Bob",19)
2.通过类来创建实例和静态方法
类是用于创建对象的模板
我们使用 class 关键字来创建一个类,类体在一对大括号 {} 中,我们可以在大括号 {} 中定义类成员的位置,如方法或构造函数。
每个类中包含了一个特殊的方法 constructor(),它是类的构造函数,这种方法用于创建和初始化一个由 class 创建的对象
按照构造函数形式创建类,不仅仅和编写普通的函数过于相似,而且代码并不容易理解
.每个类都可以有一个自己的构造函数(方法),这个方法的名称为固定的constructor
.每个类只能有一个constructor,如果包含多个构造函数,那么会抛出异常
.当我们通过new一个类的时候会调用这个类的constructor,这时new做的事情和new一个构造函数做的事情是一样的。
// 定义一个名为Person的类 class Person { // 构造函数,用于创建类的实例 constructor(name, age) { this.name = name; this.age = age; } // 实例方法,用于打印对象信息 printInfo() { console.log(`Name: ${this.name}, Age: ${this.age}`); } // 静态方法 static jumping = function(){
console.log(this.name + '在jumping')
} } // 使用构造函数创建Person对象实例 const person2 = new Person('Bob', 30); person2.printInfo(); // 输出: Name: Bob, Age: 30
本文来自博客园,作者:122www,转载请注明原文链接:https://www.cnblogs.com/131362wsc/p/18592844