1、把方法写在原型中比写在构造函数中消耗的内存更小,因为在内存中一个类的原型只有一个,写在原型中的行为可以被所有实例共享,实例化的时候并不会在实例的内存中再复制一份
而写在类中的方法,实例化的时候会在每个实例中再复制一份,所以消耗的内存更高
所以没有特殊原因,我们一般把属性写到类中,而行为写到原型中
2、构造函数中定义的属性和方法要比原型中定义的属性和方法的优先级高,如果定义了同名称的属性和方法,构造函数中的将会覆盖原型中的
代码如下:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
</head>
<body>
<script type="text/javascript">
//把方法写在原型中比写在构造函数中消耗的内存更小,因为在内存中一个类的原型只有一个,写在原型中的行为可以被所有实例共享,实例化的时候并不会在实例的内存中再复制一份
//而写在类中的方法,实例化的时候会在每个实例中再复制一份,所以消耗的内存更高
//所以没有特殊原因,我们一般把属性写到类中,而行为写到原型中
function Abc(name){this.name=name;    //构造函数中定义的属性和方法要比原型中定义的属性和方法的优先级高,如果定义了同名称的属性和方法,构造函数中的将会覆盖原型中的,所以下面的x.sya()弹出的是“my name is xudeming”,如果把这句去掉,弹出的就是“my name is xx”;//方法的优先级亦是如此/*this.say=function(){  alert(1);    }*/
}
Abc.prototype={name:"xx",say:function(){alert("my name is "+this.name);    }
}
var x=new Abc("xudeming");
x.say()
</script>
</body>
</html>

转载自:http://www.css119.com/archives/1446

转载于:https://www.cnblogs.com/michael-xiang/p/4629615.html

javascript 构造函数类和原型 prototyp e定义的属性和方法的区别相关推荐

  1. javascript构造函数类和原型prototype定义的属性和方法的区别

    1.把方法写在原型中比写在构造函数中消耗的内存更小,因为在内存中一个类的原型只有一个,写在原型中的行为可以被所有实例共享, 实例化的时候并不会在实例的内存中再复制一份 而写在类中的方法,实例化的时候会 ...

  2. Javascript 构造函数模式、原型模式

    前两天写完组合继承,打算总结一下原型继承的,不过今天看了一下工厂模式.构造函数模式和原型模式,觉得有必要总结一下以加深印象. ------------------------------------- ...

  3. 潭州课堂25班:Ph201805201 第十课 类的定义,属性和方法 (课堂笔记)

    类的定义 共同属性,特征,方法者,可分为一类,并以名命之 class Abc: # class 定义类, 后面接类名 ( 规则 首字母大写 ) cls_name = '这个类的名字是Abc' # 在类 ...

  4. JavaScript 访问对象属性和方法及区别

    这篇文章主要介绍了浅析JavaScript访问对象属性和方法及区别的相关资料,仅供参考 属性是一个变量,用来表示一个对象的特征,如颜色.大小.重量等:方法是一个函数,用来表示对象的操作,如奔跑.呼吸. ...

  5. python私有属性怎么定义_Python中定义私有属性的方法是()。

    [判断题]请假条带有请求的性质,所以一般来说篇幅要尽量长一些,以示郑重;更多要用煽情性语句,以打动对方.( ) [单选题]关于类和对象的关系,下列描述正确的是(). [选择]Трудоспособны ...

  6. Java中的string定义的两种方法和区别

    java中的String定义的两种方法和区别 第一种:new方式 String s1 = new String("hello world"); String s2 = new St ...

  7. JavaScript学习(六)—location对象常用的属性和方法

    JavaScript学习(六)-location对象常用的属性和方法 一.location对象 作用:location是window对象的一个属性,本身也是对象类型,它的作用是用来获取文档对象的相关信 ...

  8. C# 面向对象编程(杂2),类中可能出现的成分,字段,属性,方法,自动属性,权限(五种),其他类,值传递和引用传递,类ToString的问题

    C# 面向对象编程(杂2),类中可能出现的成分 1. 字段,属性,方法,自动属性 class Person1 {//字段private string _name;//字段对应的属性public str ...

  9. JavaScript中的高级特性及特别对象、属性和方法

    一,编写构造函数    可以使用 new 运算符结合像 Object().Date() 和 Function() 这样的预定义的构造函数来创建对象并对其初始化.面向对象的编程其强有力的特征是定义自定义 ...

最新文章

  1. 全球首款L4级无人车量产!李彦宏:吹过的牛实现了
  2. java形参的传递机制
  3. Objective-C Runtime
  4. myeclipse创建java错误提示_myeclipse 遇到的一些问题及解决方案
  5. 初识Mysql(part2)--我需要知道的8个Mysql语句
  6. server sql 去 反斜杠_%00截断配合反序列化的奇妙利用
  7. TcxComboBox控件说明
  8. 浪漫的表白 (5 分)
  9. Codeforces Round #447 Div. 2 A.B.C
  10. 继承Thread类的方式创建多线程
  11. 从零开始搭建webpack+react开发环境
  12. Keil5.15版本号
  13. mysql 日期格式化_每天一个常用MySQL函数-from_unixtime等
  14. 《thor过滤器 thor过滤规则合集资源》500+
  15. rocketmq获取消息id_贞炸了!上线之后,消息收不到了
  16. 见与不见---作者:谈笑靖
  17. consider increasing the maximum size of the cache. After eviction approximately [10,239] KB of data
  18. python读word文档计算字数_python读取word文档
  19. 分享Python采集99个VB源码,总有一款适合您
  20. 软考证书找工作有用吗?软考找工作用处大吗

热门文章

  1. VMM2012应用指南之4-向VMM中添加Hyper-V主机与应用服务器
  2. 2010年5月21日 下雨了
  3. SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例(转)...
  4. iptables mangle表研究(未完)
  5. Websphere设备、企业部署应用程序 【应用】
  6. Recommender Systems基于内容的推荐
  7. 安装MHA中清理Relay log报错
  8. oracle 的服务器进程(PMON, SMON,CKPT,DBWn,LGWR,ARCn)
  9. css :hover
  10. (转)Ext与.NET超完美整合 .NET开发者的超级优势