js的构造函数共用事例
在使用构造函数去实现一种功能时,我们有时候往往需要实现这个功能,会因此产生多个堆内对象。这样就会造成堆内存滥用。占用不该占用的空间。为此我们可以利用函数把共用的内容封装起来。放便我们的使用。很多东西其实都是基于堆与栈的,深入理解一下更有利于学习计算机。代码不算字这个限制什么时候可以消除呢。来自版主的吐槽。为了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.
js的构造函数共用事例的更多相关文章
- js高级——构造函数,实例对象和原型对象——prototype、__proto__和constructor构造器
一.前言 了解JavaScript面向对象,需要先了解三个名词: 构造函数,实例对象和原型对象. 注意:JavaScript中没有类(class)的概念,取而代之的是构造函数,两者类似却又有很大的差别 ...
- js 时间构造函数
js 时间构造函数,js中没有类似ToString("yyyy-mm-dd HH:mm:ss") 的方法,但是可以用下面的方式来初始化 var cdate = new Date(& ...
- JS基础——构造函数VS原型
JS是一种基于对象的语言.在使用过程中不免遇到复制对象的问题.但通常我们採用的直接赋值'obj1=obj2'这样的做法会出现数据覆盖问题. 也就是对象引用过程中引用地址一致.导致对象数据被改动的问题. ...
- JS中构造函数和普通函数有什么区别
JS中构造函数有普通函数有什么区别? 1.一般规则 构造函数都应该以 一个大写字母开头,eg: function Person(){...} 而非构造函数则应该以一个小写字母开头,eg: functi ...
- JS高级---构造函数通过原型添加方法,原型的作用: 共享数据, 节省内存空间
JS高级---构造函数,通过原型添加方法,原型的作用: 共享数据, 节省内存空间 构造函数 //构造函数 function Person(sex, age) { this.sex = sex; thi ...
- JavaScript总结学习一:js中构造函数与普通函数的区别
构造函数不仅只出现在JavaScript中,它同样存在于很多主流的程序语言里,比如c++.Java.PHP等等.与这些主流程序语言一样,构造函数在js中的作业一样,也是用来创建对象时初始化对象,并且总 ...
- JS 处理Json数据事例
JS从远端获取数据之后,往往还需要在处理一下,下面给出一个事例,供参考 将'[{"role_id":1,"enable":1},{"role_id&q ...
- JS中构造函数与原型对象的同名属性,实例会取哪一个
构造函数与原型对象的同名属性,实例会取哪一个? 看了下面的过程,再回忆JS高程3里关于这部分的示意图.实例my在new的时候,本身就获得了a属性,所以my.a是1,倘若在new的时候如果没有赋予a属性 ...
- js中构造函数与普通函数的区别
构造函数不仅只出现在JavaScript中,它同样存在于很多主流的程序语言里,比如c++.Java.PHP等等.与这些主流程序语言一样,构造函数在js中的作业一样,也是用来创建对象时初始化对象,并且总 ...
随机推荐
- VS中,Ctrl+Shift+F无法在文件中查找
可能是和搜狗的繁简字切换的快捷键冲突了,把搜狗的该快捷键修改或者关闭掉即可.
- IDEA jsp模板
> File > Settings- > File and Code Templates > Other >Jsp files >Jsp File.jsp < ...
- lambda表达式Expression<Func<Person, bool>> 、Func<Person, bool>区别
前言: 自己通过lambda表达式的封装,将对应的表达式转成字符串的过程中,对lambda表达式有了新的认识 原因: 很多开发者对lambda表达式Expression<Func<Pers ...
- PAT乙级-1070. 结绳(25)
给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下图所示套接在一起.这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连.每次串连后,原来两段绳子的长度 ...
- 学习笔记-Little Tips_day20170615-"\n" and '\n'
1.'\n'是字符 相当于char 占一个字节 "\n"是字符串 相当于char[2] 占两个字节 答案是ABC
- Filecoin: 影响力容错(PFT)和预期共识(EC)
名字翻译:Power Fault Tolerance-影响力容错 关于这个名字翻译,小编思考了大约2周时间,期间也跟各路技术牛人进行了交流. The Power Fault Tolerance mod ...
- 员工选票系统-java
Yuangong.java package com.toupiao; public class Yuangong { private String name; private int piao; pu ...
- java--计时器
计时器 一.窗口化 public class Pro extends JFrame{ private JTextField textField = new JTextField(45);//系统时间文 ...
- eclipse的Debug模式下的快捷键
主要快捷键: F5, F6, F7, F8的使用 F5: 进入当前方法 F6: 一步步执行 F7: 跳出方法, 返回到调用此方法的最后一条语句 F8: 继续执行,跳转到下一个断点的位置 示例: 在 ...
- 深度学习之TensorFlow构建神经网络层
深度学习之TensorFlow构建神经网络层 基本法 深度神经网络是一个多层次的网络模型,包含了:输入层,隐藏层和输出层,其中隐藏层是最重要也是深度最多的,通过TensorFlow,python代码可 ...