在使用构造函数去实现一种功能时,我们有时候往往需要实现这个功能,会因此产生多个堆内对象。这样就会造成堆内存滥用。占用不该占用的空间。为此我们可以利用函数把共用的内容封装起来。放便我们的使用。很多东西其实都是基于堆与栈的,深入理解一下更有利于学习计算机。代码不算字这个限制什么时候可以消除呢。来自版主的吐槽。为了150字我也很绝望。

  具体事例:

  

function Person(name,age,gender){
this.name = name;
this.age = age;
this.gender =gender;
this.sayname = function(){
console.log("hello! my name is"+ this.name);
}
}
var per1 = new Person("ton",12,"男");
var per2 = new Person("lily",11,"男");
var per3 = new Person("tom",18,"男"); //我们来判断我们生产的对象是不是相同的。
console.log(per1.sayname==per3.sayname);// false;
//上面这种情况很明显在我们调用的时候会在堆内产生一个新对象。
//为了优化这种情况,我们需要将this.sayname这个共用体单独拿出来。 function Person(name,age,gender){
this.name = name;
this.age = age;
this.gender =gender;
//向对象中添加一个方法
this.sayname = fun;
}
//将sayname方法在全局作用域中定义;
function fun(){
console.log("hello! my name is"+ this.name);
}
//创建一个Person的例子,我们来检查一下。 var per4 = new Person("猪八戒",32,"男");
var per5 = new Person("唐僧",33,"男");
console.log(per4.sayname==per5.sayname);// true。 问题解决了。

 感谢观看如果有那里错误还请大佬们指正。来自一个萌新的膜拜。弱者的qq:1985076744.

最新文章

  1. C++中的const
  2. 《你不知道的JavaScript》整理(二)——this
  3. JS--遍历对象
  4. curl发送get和post请求
  5. smarty模板原理和增删改查例题
  6. Crystal Reports 支持的纸张种类
  7. 引用类型a=b
  8. POJ 2531 Network Saboteur
  9. js-数组算法收集版(转)
  10. Android性能优化-内存泄漏的8个Case
  11. 使用清华开源镜像安装tensorflow
  12. deepin 下安装goland中文字体显示全是方块
  13. 极客时间 深入拆解java虚拟机 一至三讲学习总结
  14. Python:a,*args,**kwargs的理解
  15. openvpn搭建和使用
  16. java框架之Spring(2)-注解配置IOC&AOP配置
  17. 微信小程序——获取用户unionId
  18. vue打包后404,webpack配置问题
  19. docker 命令2
  20. excel的宏与VBA实践——建表语句

热门文章

  1. 2018java平均工资,想转行学java的快点上车
  2. iframe结构的项目,登录页面嵌套
  3. Lintcode249 Count of Smaller Number before itself solution 题解
  4. 使用localtunne一分钟搞定微信公众号接入
  5. oracle空间索引
  6. SDP(13): Scala.Future - far from completion,绝不能用来做甩手掌柜
  7. 3.21li = [1,'a','b',2,3,'a'] # li[1] = 'dfasdfas' # print(li)
  8. 针对微信的一篇推送附有的数据链接进行MapReduce统计
  9. java--计时器
  10. 基于JavaMail向邮箱发送邮件