读书人

在js中运用动态原型方法定义对象

发布时间: 2012-08-25 10:06:20 作者: rapoo

在js中使用动态原型方法定义对象
使用动态原型方法定义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; //寻找不到的情况        };

读书人网 >JavaScript

热点推荐