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

作者:jingxian 时间:2024-04-22 13:03:54 

经常在前端面试或是和其他同行沟通是,在谈到构造在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,原型
0
投稿

猜你喜欢

  • Python反射的用法实例分析

    2023-11-09 13:29:54
  • Flask response响应的具体使用

    2021-01-30 06:48:27
  • ASP提速技巧五则

    2008-03-20 13:20:00
  • pip install python-Levenshtein失败的解决

    2023-07-31 05:17:28
  • python实现模拟数字的魔术游戏

    2021-03-21 17:06:39
  • 手把手教你将Vim改装成一个IDE编程环境(图文) 吴垠

    2023-09-09 22:40:43
  • C#使用SqlServer作为日志数据库的设计与实现

    2024-01-17 05:10:12
  • 微信小程序实现多文件或者图片上传

    2024-04-29 14:06:10
  • 在js中的replace方法详解

    2007-08-21 15:47:00
  • 17个asp常用的正则表达式

    2008-01-15 18:58:00
  • python 对象和json互相转换方法

    2022-06-27 18:40:14
  • js Array的用法总结

    2024-04-25 13:08:26
  • ASP XMLDom在服务器端操作XML文件的主要方法和实现

    2011-03-09 11:09:00
  • 如何使用python传入不确定个数参数

    2023-10-27 22:56:36
  • SQLServer查询某个时间段购买过商品的所有用户

    2024-01-17 20:02:10
  • python装饰器相当于函数的调用方式

    2021-05-13 13:39:03
  • ASP.NET MVC4入门教程(八):给数据模型添加校验器

    2024-06-05 09:27:38
  • 详细总结Python类的多继承知识

    2021-10-02 03:15:02
  • Pygame Event事件模块的详细示例

    2022-04-23 14:55:46
  • 详解Mysql命令大全(推荐)

    2024-01-20 08:00:35
  • asp之家 网络编程 m.aspxhome.com