博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript中的类方法、构造方法、原型方法的对比
阅读量:5170 次
发布时间:2019-06-13

本文共 935 字,大约阅读时间需要 3 分钟。

如果你已经接触js很久了,那么应该可以看看我总结的是否正确,如果你刚开始学习,那么通过我的总结,你可以更快的区别他们,记得我刚接触js时,这一块反正是模糊了很久!

1,长相的区别:

1  function Class(){   //声明一个类2     this.constructMethod = function(){};  //添加构造构造方法3 };4  Class.classcMethod = function(){}; //添加类方法 5 Class.prototype.protocMethod=function(){};//添加原型方法

2,用法的区别:

1  Class.classMethod();//类方法直接调用2  var instance = new Class();3  instance.constructMethod();//构造方法实例才能调用4  instance.protoMethod();//原型方法实例才能调用

3,性能上的区别:

       A类方法在内存中只会有一份,因为它只属于类本身,在实际中,我们一般不会用到类方法。写出来主要是让你知道它而已。

       B构造方法和原型方法都是实例的,但是构造方法会在每一次new Class()时,都在内存中产生一个新的副本。通常这种方法我们用在实例间的不同之处。每个实例的构造方法互不影响。但是显然,它又占据内存了。原型方法就正好相反,它不会随着new Class()时

         产生新的副本,它在内存中也只有一份。可以实现实例间的共享。同时也节约了内存。

     综上:你在开发时,一般不会用到类方法,将有共性的方法做成原型方法,将有个性的方法做成构造方法。

4,以上谈到的构造方法,在实际项目中用还可以将它转移到实例上,即给实例添加方法,因为通常我们只在类的构造函数里放一些属性成员,而不是方法。见下:

 

1  function Class(){};2 var instance = new Class();3  instance.instanceFn=function(){};//添加实例方法

         开心一刻:

转载于:https://www.cnblogs.com/wenber/p/3636607.html

你可能感兴趣的文章
《http权威指南》阅读笔记(二)
查看>>
faster r-cnn cudnn版本不兼容问题
查看>>
[置顶] ListBox控件的数据绑定
查看>>
链表插入排序
查看>>
http://blog.csdn.net/yunye114105/article/details/7997041
查看>>
设计模式这个东西 刚刚发现几种模式好像大同小异啊
查看>>
关于 主键和外键
查看>>
python集合的交,差,并,补集合运算汇总
查看>>
校园分期支付的机遇和风险
查看>>
怕忘记-windows 2003服务器安装Node.js NPM
查看>>
一鍵分享(優化后)
查看>>
dcm4che 的依赖无法下载
查看>>
cygwin主要命令
查看>>
多线程存在哪些风险
查看>>
洛谷P2692 覆盖 题解
查看>>
Linux下清理内存和Cache方法见下文:
查看>>
【AngularJs-模块篇-Form篇】
查看>>
支持向量基
查看>>
单链表 类
查看>>
类的组合 构造函数的用法
查看>>