js不支持类的概念,单它支持与对象一起用的特殊Constructor(构造器)函数。通过在构造器前面加new关键字,告诉js想使用构造器一样实例化一个新的对象,并且对象成员由该函数定义。在构造器内,关键字this引用新创建的对象。基本构造器如下面这个例子:
function Car(m,y,s){ this.m=m; this.y=y; this.s=s; this.toString = function(){ return this.m+'has done'+this.s+'miles'; }; } var civic = new Car('Honda Civic',2009,20000); var mondeo = new Car('Ford Mondeo',2010,5000); console.log(civic.toString()); console.log(mondeo.toString());
这是一个简单的构造器,每一次定义新对象,都是使用Car构造器创建的。但这个不理想,toString()函数对每一个新对象都要分别重新定义。所以要想在所有的Car类型实例之间共享就要用到带原型的构造器,也就是prototype。
function Car(m,y,s){ this.m=m; this.y=y; this.s=s; } Car.prototype.toString = function(){ return this.m+'has done'+this.s+'miles'; }; var civic = new Car('Honda Civic',2009,20000); var mondeo = new Car('Ford Mondeo',2010,5000); console.log(civic.toString()); console.log(mondeo.toString());
这样就能让toString()函数实现在Car对象之间共享了。
相关推荐
### JavaScript设计模式之构造器(Constructor)模式解析 #### 一、引言 在JavaScript中,构造器模式是一种常见的设计模式,它主要用于对象的创建和初始化。本篇文章将深入探讨构造器模式的基本概念、实现方式及其...
JavaScript设计模式中的构造器(Constructor)模式是一种用于初始化新创建对象的方法。在内存分配给对象之后,构造器被用来设置初始状态,包括成员属性和方法的值。在JavaScript中,对象的创建通常有两种方式:对象...
JavaScript中的构造器Constructor模式是创建对象的一种方式,尤其在JavaScript这种不支持传统的类继承的语言中,构造器扮演着至关重要的角色。构造器主要用于初始化新创建的对象,设置它们的属性和方法。然而,构造...
而 prototype 则是函数所特有的属性,它让函数可以被用作构造器来创建实例,同时这些实例可以共享相同的方法和属性。 一、constructor 属性 constructor 属性是对象的一个属性,它指向创建该对象的构造函数。每一...
构造器模式的基本思想是定义一个函数(即构造器),它接受参数并在内部设置这些参数作为新对象的属性。例如,我们可以创建一个`Car`构造器,用于创建不同汽车的实例: ```javascript function Car(model, year, ...
构造函数模式是JavaScript中的一种重要设计模式,用于创建对象。本文将深入探讨构造函数模式及其应用。 构造函数模式的核心在于使用函数来创建具有相似属性和方法的对象。在JavaScript中,函数可以作为构造函数来...
所有对象(除了基本类型)都继承自`Object.prototype`,并且它们的构造器可以通过`constructor`属性追溯回对应的构造函数: ```javascript alert(Object.prototype.constructor === Object); // true ``` 8. **...
- **Build-in constructor**: JS内置的构造器,如`Number`, `String`, `Boolean`等,用于创建相应的对象实例。 具体来说,`Number`, `Date`, `Array`, `RegExp`等内置构造器都是从`Object`构造器继承而来,但具体的...
代码如下: [removed] Function.prototype.... }[removed] 说下上面代码里面 T.constructor = this这句话,我感觉这句话没有什么实际作用, 本身T.constructor应该是为Funtion,为什么要给它设定为Funtion的实例呢,
- 对于使用内置构造器创建的对象,它们同样没有本地的`constructor`方法,而是从原型链上获取一个继承的`constructor`方法,这个方法指向对应的构造器函数。 - 示例代码: ```javascript var str = new String(...
属于创建型设计模式的包括Constructor构造器模式、Factory工厂模式、Abstract抽象工厂模式、Prototype原型模式、Singleton单例模式和Builder生成器模式。这些模式都有助于以更为灵活和可管理的方式创建对象。 结构...
内置构造器是JavaScript中用于创建特定类型对象的特殊函数。例如,`Number`构造器可以用于创建数字对象。可以通过如下方式访问这些构造器: ```javascript var number = new Number(123); var numConstructor1 = ...
在JavaScript中,`constructor`是一个特殊的属性,它存在于每个对象的原型(prototype)上,用于指明该对象是由哪个函数创建的,即哪个构造函数是它的构造器。当我们通过`new`关键字实例化一个对象时,`constructor`...
在JavaScript ES5之前,我们通常使用函数构造器(Function Constructor)和原型链(Prototype Chain)来模拟类的行为。例如: ```javascript function Person(name) { this.name = name; } Person.prototype....
为了解决原型继承的缺点,可以借用一个临时构造器起到一个中间层的作用,所有子对象原型的操作都是在临时构造器的实例上完成,不会影响到父对象原型。例如: ``` var F = function() {}; F.prototype = Parent....
在JavaScript中,函数可以作为构造器创建对象,函数名通常首字母大写以表示其作为类的角色。例如: ```javascript function Person(name) { this.name = name; } Person.prototype.getName = function() { ...
`constructor`属性通常用于识别对象的类型,而`instanceof`则检查一个对象是否是由特定构造器创建的。例如,`arr instanceof Array`会检查`arr`是否为数组。 7. **自调用函数**:自调用函数可以立即执行并封装代码...