【JavaScript】 使用extend继承对象的prototype方法

  之前有学习过通过prototype模式来构造类,并通过prototype来添加方法。好处大概有以下几点:

    1.类方法可以都放在prototype中,可以提高性能效率。

    2.可以用prototype来实现继承。

 

  但是缺点也不少,比如:

    1.通过prototype添加方法又臭又长,编码很不方便。

        2.继承对象时,整个继承方法比较复杂,不容易实现。

 

      一番研究后,发现backbonejs中的继承非常方便,因此想学习一下。

  backbone中的继承是基于_.extend对prototype方法进行合并。

    // _就是underscore,如果项目没有引进underscore,那么用$.extend替代也是一样的。

  比如有一个base类:

复制代码
var base = function(){}

// 添加prototype方法时,并不是直接添加
// 比如base.prototype.init = function(){}
// 而是通过下面下方进行添加
$.extend(base.prototype,{
    init:function(){},
    setSetting:function(){}
});
复制代码

  然后有一个sub类,继承base类。

var sub = function(){}

// 先用sub的自定义方法来合并base的prototype,再用base.prototype合并sub.prototype,最后返回的是最终的sub.prototype
$.extend(sub.prototype,base.prototype,{
  construcotr:sub, onclick:function(){} });

 

posted @   のんきネコ  阅读(1781)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2016-01-20 【MongoDB】 Windows 安装
点击右上角即可分享
微信分享提示