js中使用使用原型(prototype)定义方法的好处详解

 更新时间:2016年07月04日 09:07:16   投稿:jingxian  
下面小编就为大家带来一篇js中使用使用原型(prototype)定义方法的好处详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

经常在前端面试或是和其他同行沟通是,在谈到构造在JS定义构造函数的方法是最好使用原型的方式:将方法定义到构造方法的prototype上,这样的好处是,通过该构造函数生成的实例所拥有的方法都是指向一个函数的索引,这样可以节省内存。

当然,这种说法没有任何问题,只是在实现上,并非只有使用prototype的方式才能达到这样的效果,我们可以将方法以函数的形式定义在构造函数之外,然后在构造函数中通过this.method = method的方式,这样生成的实例的方法也都通过索引指向一个函数,具体如下:

// 不使用原型定义方法:
(function() {
  function Constractor() {
    this.method1 = method1;
    this.method2 = method2;
  }

  function method1() {
  }

  function method2() {
  }
})();

一般使用原型定义时代码如下:

(function () {
  function Constractor() {
  }

  Constactor.prototype = {
    method1: function() {
    },
    method2: function() {
    }
  };
  
  // 或者
  Constactor.prototype.method1 = function() {
  };
  Constactor.prototype.method2 = function() {
  };

})();

理论和实现都没有什么高深的,只是为了达到同样的目的,可以通过不同的途径,只是此种方式在使用instanceOf运算符来判断继承关系时就不奏效了。

以上这篇js中使用使用原型(prototype)定义方法的好处详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • JS碰撞运动实现方法详解

    JS碰撞运动实现方法详解

    这篇文章主要介绍了JS碰撞运动实现方法,详细分析了碰撞运动的原理及相应的javascript实现技巧,需要的朋友可以参考下
    2016-12-12
  • 分析uniapp入门之nvue爬坑记

    分析uniapp入门之nvue爬坑记

    uni-app的nvue说白了就是weex的那一套东西,uni-app集成了weex的 SDK,也就实现了App端的原生渲染能力。本文将介绍uniapp遇到的一些坑,分享给大家。
    2021-06-06
  • 完美解决AJAX跨域问题

    完美解决AJAX跨域问题

    我看到过很多人不愿意去正视ajax所存在的技术瓶颈,其实AJAX更应该是Ajax而不是AJAX,突出第一个A是想强调其实AJAX发扬的是一种异步传输的方法,而不是具体到底使用了哪种技术
    2013-11-11
  • 微信小程序设置全局请求URL及封装wx.request请求操作示例

    微信小程序设置全局请求URL及封装wx.request请求操作示例

    这篇文章主要介绍了微信小程序设置全局请求URL及封装wx.request请求操作,结合实例形式分析了微信小程序针对wx.requset请求的封装及调用操作相关实现技巧,需要的朋友可以参考下
    2019-04-04
  • BootStrap中的table实现数据填充与分页应用小结

    BootStrap中的table实现数据填充与分页应用小结

    这篇文章主要介绍了BootStrap中的table实现数据填充与分页功能的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-05-05
  • HTML+JS模拟实现QQ下拉菜单效果

    HTML+JS模拟实现QQ下拉菜单效果

    这篇文章主要为大家详细介绍了如何利用HTML+JavaScript模拟实现QQ中的下拉菜单效果。文中的示例代码讲解详细,感兴趣的小伙伴可以学习一下
    2022-05-05
  • layui 数据表格 根据值(1=业务,2=机构)显示中文名称示例

    layui 数据表格 根据值(1=业务,2=机构)显示中文名称示例

    今天小编就为大家分享一篇layui 数据表格 根据值(1=业务,2=机构)显示中文名称示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • 微信小程序授权登录及解密unionId出错的方法

    微信小程序授权登录及解密unionId出错的方法

    这篇文章主要介绍了微信小程序授权登录及解密unionId出错的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • js实现文本上下来回滚动

    js实现文本上下来回滚动

    本文主要分享了js实现文本上下来回滚动的示例代码。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • 一个兼容FF的智能超长文章分页JS

    一个兼容FF的智能超长文章分页JS

    这篇文章主要介绍了一个兼容FF的智能超长文章分页JS的相关资料,需要的朋友可以参考下
    2007-07-07

最新评论