【JavaScript】原型

本文讲解如何使用JavaScript的原型来扩展Array对象,实现为所有数组实例添加自定义方法,如求和函数。通过这种方式,避免了为每个数组实例单独定义相同方法所带来的资源浪费。

之前在【工厂方法】中说这个方法有两个缺点

1.没有new (在函数前面加上new)

2.每个对象都有一套自己的函数,这样浪费了资源

现在靠一个神奇的东西,可以解决第二个问题,那就是原型

原型一个重要的功能(应用):可以扩展系统对象(添加本身不支持的属性和方法)

var arr=New Array(); 
class 改变一类元素的样式     相当于prototype!!!(给一类加方法)
行间样式 改变一个元素的样式     给一个对象加方法
模子
对象(实例)蛋糕
Array类   不具备实际的功能,只能用来构造对象
arr对象   真正有功能的东西,被类构造出来

 

 

 

 

 

 

 

下面代码只能alert出arr1

        var arr1=new Array(2,4,7,34);
        var arr2=new Array(35,324,11,55);
        //目前只有arr1有sum方法。这种情况有点像css中的行间样式,只给一个元素添加样式
       //arr1.sum=function(){
            var result=0;
            for(var i=0;i<this.length;i++){
                result+=this[i];
            }
            return result;
        };
        alert(arr1.sum());
        alert(arr2.sum());        

所以给Array这个类加上原型就ok了

 

 

 

 

 

 

 1         var arr1=new Array(2,4,7,34);
 2         var arr2=new Array(35,324,11,55);
 3     //目前只有arr1有sum方法。这种情况有点像css中的行间样式,只给一个元素添加样式
 4     //arr1.sum=function(){
 5     //所以给Array(类)的原型加方法。这种情况有点像css中的class,给一类元素添加样式
 6         Array.prototype.sum=function(){
 7             var result=0;
 8             for(var i=0;i<this.length;i++){
 9                 result+=this[i];
10             }
11             return result;
12         };
13         alert(arr1.sum());
14         alert(arr2.sum());        

 这样既能alert出arr1的值,也能出来arr2的值~

转载于:https://www.cnblogs.com/shenyanran/p/6123656.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值