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

本文介绍了面向对象编程的基本概念,包括如何定义构造函数、添加属性和方法。通过具体示例展示了如何利用原型来扩展对象的功能,并强调了不要随意修改系统对象的原型属性和方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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函数返回的是数组的长度
    }






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值