面向对象及组件开发(五)普通方法与原型方法

来源:互联网 发布:魔兽争霸3mac安装 编辑:程序博客网 时间:2024/06/06 15:50

1.普通方法

<script type="text/javascript">    var arr1 = [1,2,3,4,5];    var arr2 = [2,2,2,2,2];    arr1.sum = function(){        var result = 0;        for(var i=0;i<this.length;i++){            result+=this[i];        }        return result;    }    alert(arr.sum());    arr2.sum = function(){        var result = 0;        for(var i=0;i<this.length;i++){            result+=this[i];        }        return result;    }    alert(arr2.sum());</script>

从上面的例子可以看出,对于普通方法而言我们要对每一个对象分别创建一个方法。

2.原型方法

<script type="text/javascript">    var arr = [1,2,3,4,5];    var arr2 = [2,2,2,2,2];    //使用原型方法这个时候你只需要借用构造函数创建一个函数    Array.prototype.sum = function(){        var result = 0;        for(var i=0;i<this.length;i++){            result+=this[i];        }        return result;    }    alert(arr.sum());    alert(arr2.sum());</script>

3.普通方法和原型方法的优先级比较

<script type="text/javascript">    var arr = [];    arr.number = 10;    Array.prototype.number = 20;    alert(arr.number); //result : 10    //从中我们可以看出,普通方法的优先级高于原型方法</script>