JS面向对象之JS是基于原型的程序

2018年4月3日                                           天气晴朗                                   

复习昨天学习:1、什么是面向对象,面向对象该怎么写?(首先要写一个构造函数,然后添加属性,添加方法)

function 函数名(){//函数名首字母大写
  this.属性
} 

函数名.prototype.方法名 = function() {} //要使用这个函数,则可以这样 var XX = new 函数名()

看我们JS中的系统对象,比如数组Array()、日期Date(),可以发现这个系统对象也有很多类似的方法,其实在JS源码,系统对象也是基于原型上的;(尽量不要去修改或者添加系统对象中的原型属性和方法)

比如

    var arr = [1, 2, 3];
    Array.prototype.push = function(arguments) {}//覆盖了源码中的push,让源码中的push方法不起作用了
    arr.push(4, 5,6);//这样就不能把4,5,6添加到arr后面了

push方法的源码应该是这样的:

   Array.prototype.push = function() {
      for(var i = 0; i < arguments.length; i++) {
        this[this.length] =arguments[i];
      }
      return this.length;//不要忘了push函数返回的是数组的长度
    }






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值