使用动态原型方法定义Car类
function Car(sColor,iDoors,iMpg) {
this.color = sColor;
this.doors = iDoors;
this.mpg = iMpg;
this.drivers = new Array("Mike","John");
if (typeof Car._initialized == "undefined") {
Car.prototype.showColor = function() {
alert(this.color);
};
Car._initialized = true;
}
}
另外使用对象的prototype属性可以为已知类添加新的方法。
例如
Array.prototype.enqueue = function(vItem) {
this.push(vItem);
};
Array.prototype.dequeue = function() {
return this.shift();
};
Array.prototype.indexOf = function (vItem) {
for (var i=0; i<this.length; i++) {
if (vItem == this[i]) {
return i;
}
}
return -1;
}
关于Array的indexOf也可以这么写
Array.indexOf = (Array.prototype.indexOf) ?
function(a, val) {
return Array.prototype.indexOf.call(a, val);
} :
function(a, val) {
for (var i=0; i<a.length; i=i+1) {
if (a[i] === val) {
return i;
}
}
return -1; //寻找不到的情况
};
分享到:
相关推荐
本文将深入探讨两种常见的定义对象原型的方法:通过`prototype`属性和通过对象字面量。 ### 第一种方法:使用`prototype`属性 ```javascript function Person() { this.username = new Array(); this.password =...
最后,需要注意的是,虽然在JavaScript中使用原型定义方法有诸多好处,但并不是所有的方法都适合放在原型上。例如,对于那些只需要在对象创建时执行一次的初始化操作,应该放在构造函数中。同时,当我们需要在构造...
在JavaScript中,每个对象都有一个原型对象,而原型对象又可能有自己的原型对象,从而形成一个原型链。这种特性允许对象继承其他对象的属性和方法。本文将深入探讨JavaScript中的原型、原型对象以及原型链的概念,并...
在JavaScript中创建对象有多种方式,最简单的一种是直接使用对象字面量来创建。例如: ```javascript var box = { name: 'Lee', age: 100, run: function() { return this.name + this.age + '运行中'; } }; ``...
当访问一个对象的属性或方法时,如果在对象本身中找不到,JavaScript引擎会继续在其原型对象中查找,这个过程会一直持续到找到该属性或方法,或者到达原型链的末端(即Object的原型对象)。 工厂模式是一种创建对象...
在JavaScript中,类(Class)、对象(Object)和构造函数(Constructor)是面向对象编程的基础。这篇文章将深入探讨这三个概念,以及如何实现类的继承。 首先,让我们理解什么是JavaScript中的对象。在JavaScript中...
在利用构造函数创建对象时,每个对象都默认与这个原型对象连接,连接后就可以访问到原型对象中的属性和方法 6.6.1 原型 2、作用 利用原型对象可以保存一些公共的属性和方法。当访问某个对象中的一个不存在的属性或...
当尝试访问一个对象的属性或方法时,JavaScript会首先在对象自身的属性中查找,如果没有找到,就会沿着`__proto__`链向上查找,直到找到该属性或方法,或者到达原型链的顶端——`Object.prototype`,此时`Object....
在JavaScript中,通过类的形式定义对象是一种常见的做法。为了扩展类的功能或为类添加新的行为,开发者常常需要向类的原型(`prototype`)添加方法。在JavaScript中,有两种主要的方式来实现这一目的:一种是直接将...
面向对象编程在JavaScript中的实现主要基于以下三个概念:构造函数、原型和实例化。构造函数是一个特殊类型的函数,用于创建和初始化一个新对象。当你定义一个构造函数时,实际上是在定义一个对象类型。例如: ```...
JavaScript引擎在查找属性时会沿着原型链查找,如果在实例对象本身找不到,就会去原型对象中寻找,直到找到`null`(这是原型链的终点),表示没有找到。 总结一下,JavaScript中的实例对象与原型对象的关系是: 1. ...
在上面的代码中,我们使用Object.create方法创建了一个新的对象,并将其原型设置为Person对象。 四、闭包 闭包是JavaScript中的一种机制,它允许函数访问其外部的变量。在JavaScript中,闭包经常用于实现私有变量...
这个联系使得对象可以通过原型链访问在其构造函数中定义的方法和属性。 具体应用方面: - prototype属性常用于定义构造函数的原型方法,即共享方法。例如,你可以在Person构造函数的prototype属性上定义一个...
JavaScript原型链是JavaScript语言中的一个核心特性,它关乎对象之间的继承关系。在JavaScript中,一切皆为对象,而原型链则是实现对象间属性和方法共享的一种机制。理解原型链对于深入学习JavaScript至关重要。 ...
原型动态模式是对原型模式的改进,它允许在创建对象后动态添加方法到对象的原型上。这样做的好处是灵活性更高,可以在不修改原有构造函数的情况下扩展对象的方法和属性。然而,动态添加方法到原型上也可能带来问题,...
本文将对JavaScript原型继承的方式进行介绍,并结合实例进行分析。 基于类的继承 面向对象编程语言是基于类的语言,以Java为例,Java是基于类的语言。在基于类的语言中,对象是类的实例,并且一个类可以从另一个类...