1. // -------------------- prototype 1 --------------------
  2. function A(){}
  3. A.prototype.n = 1
  4. let b = new A()
  5. A.prototype.n = 2
  6. A.prototype.m = 3
  7. let c = new A()
  8. console.dir(b) // {n: 2, m: 3}
  9. console.dir(c) // {n: 2, m: 3}
  10. // -------------------- prototype 2 --------------------
  11. function A(){}
  12. A.prototype.n = 1
  13. let b = new A() // 实例的 _proto__ 与构造函数的 prototype 指向同一个地址.
  14. A.prototype = {n:2,m:3} // 这里把构造函数的 prototype 指向了别的地址,所以实例的 __proto__ 和构造函数的 prototype 不再指向同一个地址了
  15. let c = new A()
  16. console.dir(b) // {n: 1} 而前者的A.prototype改变了地址,指向了{n:1, m:2},所以不会影响先前创建的实例b
  17. console.dir(c) // {n: 2, m: 3}
  18. /**
  19. * A.prototype.n是添加属性n的值,A.prototype={n:1,m:2}是用{n:1,m:2}对象覆盖了prototype其他的属性
  20. * 使用.的形式还是操作原先的内存指向, 而等号就是重新赋值了
  21. */

JavaScript 通过prototype改变原型的两种方式的更多相关文章

  1. javascript消除字符串两边空格的两种方式,面向对象和函数式编程。python oop在调用时候的优点

    主要是javascript中消除字符串空格,比较两种方式的不同 //面向对象,消除字符串两边空格 String.prototype.trim = function() { return this.re ...

  2. javascript文件夹选择框的两种解决方案

    javascript文件夹选择框的两种解决方案 解决方案1:调用windows 的shell,但会有安全问题. * browseFolder.js * 该文件定义了BrowseFolder()函数,它 ...

  3. angularjs通过ng-change和watch两种方式实现对表单输入改变的监控

    angularjs通过ng-change和watch两种方式实现对表单输入改变的监控 直接上练习代码 <!DOCTYPE html> <html xmlns="http:/ ...

  4. VS Code - Debugger for Chrome调试JavaScript的两种方式

    VS Code - Debugger for Chrome调试JavaScript的两种方式 最近由于出差的缘故,博客写的不是很多,一直想写一篇VS Code - Debugger for Chrom ...

  5. JavaScript对象属性访问的两种方式

    JavaScript对象属性访问的两种方式 object.attribute object["attribute"] 例如: var employees = [ { "f ...

  6. Flex(ActionScript)与JavaScript交互的两种方式示例

    随着各单位部门信息化进程的不断发展,互通互联.共享协调不断的被越来越多的客户所重视.很多新项目都要去必须能够集成已有的早期系统,至少也要能够实现交互对接.今天跟大家分享的是系统对接中ActionScr ...

  7. IOS-43-导航栏标题navigationItem.title不能改变颜色的两种解决方法

    IOS-43-导航栏标题navigationItem.title不能改变颜色的两种解决方法 IOS-43-导航栏标题navigationItem.title不能改变颜色的两种解决方法 两种方法只是形式 ...

  8. 【javascript】原生js更改css样式的两种方式

    下面我给大家介绍的是原生js更改CSS样式的两种方式: 1通过在javascript代码中的node.style.cssText="css表达式1:css表达式2:css表达式3  &quo ...

  9. html中如何实现表格移入移出时背景颜色改变?(两种方法)

    html中如何实现表格移入移出时背景颜色改变?(两种方法) 一.总结 1.通过css的table标签的hover属性: 10 #tab:hover{ 11 background: green 12 } ...

随机推荐

  1. 04 CMD规范基础使用详解

    CMD模块规范 1.1 CMD规范说明 专门用于浏览器端,并且模块的加载是异步的,而且只有模块使用时才会加载执行: CMD规范的语法类似于Commonjs + AMD --定义模块使用AMD语法,暴露 ...

  2. 工程能力UP | LightGBM的调参干货教程与并行优化

    这是个人在竞赛中对LGB模型进行调参的详细过程记录,主要包含下面六个步骤: 大学习率,确定估计器参数n_estimators/num_iterations/num_round/num_boost_ro ...

  3. 使样式只在webkit内核生效

    @media screen and (-webkit-min-device-pixel-ratio:0){ .do someting{ } }     使用媒体查询,制定样式

  4. java基础(七)--基本类型转换

    一.转换规则 1.类型转换的原则是: 小容量可以自动转成大容量,大容量转成小容量,需要强制转换,有些类型之前不能转换 判断以下语句是否符合要求 2.默认的识别数字 整数默认->int 浮点数默认 ...

  5. Zabbix-server自动发现,批量添加主机,并链接模板

    zabbix可以手动添加agent客户端,当主机数量比较多时,这时手工重复工作会大大增加.zabbix的自动发现功能可以帮我们解决这个问题. 准备条件: 1. 被监控主机都装上zabbix-agent ...

  6. 动态页面技术(JSP)

    JSP技术 jsp脚本和注释 jsp脚本: 1)<%java代码%> ----- 内部的java代码翻译到service方法的内部 2)<%=java变量或表达式> ----- ...

  7. 使用 expect 重启失败的 git pull/push 操作

    问题的提出 最近使用 github 上传.下载项目代码时,经常会卡很久,有时候在命令行打了 git push 然后就去上厕所了,结果等我回来的时候,发现 push 早已经失败了,还得重新提交一下.如果 ...

  8. CentOS6下yum搭建LNMP环境

    1.关闭防火墙[root@CentOS ~]# chkconfig iptables off 2.关闭selinuxvi /etc/sysconfig/selinux //将SELINUX=enfor ...

  9. 02_HTML03

    学于黑马和传智播客联合做的教学项目 感谢 黑马官网 传智播客官网 微信搜索"艺术行者",关注并回复关键词"软件测试"获取视频和教程资料! b站在线视频 HTML ...

  10. PHP parse_ini_file() 函数

    定义和用法 parse_ini_file() 函数解析一个配置文件(ini 文件),并以数组的形式返回其中的设置. 语法 parse_ini_file(file,process_sections) 参 ...