日期:2014-05-16  浏览次数:20415 次

Javascript的面向对象技术特性小记

Javascript在不断改进,和几年前相比已经不可同日而语了。Javascript的面向对象的技术比较另类,是基于原型的一种实现。所为原型就是把一些公用的基本的方法和属性方法一个做为原型的对象中,该对象可以是一个普通的对象。访问对象的原型用prototype属性。

这个技术方案的一个明显好处是,对象的功能非常容易扩展,比如,要在Javascript内置对象Array中增加一个方法shuffle()就很容易:

?

// solution for problem 6
Array.prototype.shuffle = function() {
  var t = [];
  for(var i = 0; i < this.length; i ++) {
    //substiute i to a random value between 0 ~ this.length - 1
    var j;
    do {
      j = parseInt(Math.random() * this.length);
    } while (typeof t[j] !== 'undefined');
    t[j] = this[i];
  }
  return t;
};

[1, 2, 4, 5, 6, 7, 8, 9].shuffle();

?

如果在firebug或chrome Javascript控制台运行多次上述代码可以看到1~9的顺序被随机的打乱了。