侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

前端——js中使用原型(prototype)定义方法的好处

2024-02-22 星期四 / 0 评论 / 0 点赞 / 24 阅读 / 1920 字

经常在前端面试或是和其他同行沟通是,在谈到构造在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运算符来判断继承关系时就不奏效了。

广告 广告

评论区