修改原型对象的方法分为两种情况, 一种是对原型对象的属性方法做增删改, 一种改变原型对象的指向.

第一种: 对原型对象的属性/方法做增删改

function Person(name){
this.name = name;
} var lilei = new Person("Lilei"); // 增
Person.prototype.getName = function (){
return this.name;
}
lilei.getName(); // "Lilei" // 改
Person.prototype.getName = function(){
return this.name.toUpperCase();
}
lilei.getName(); // "LILEI" // 删
delete Person.prototype.getName; // true
lilei.getName(); // Error

第二种: 改变原型对象的指向

以下代码中, 我们如果要整个改变原型对象的指向, 那目标对象中必须要有一个constructor属性, 值为这个原型对象关联的构造函数. 此外, 这个改变不能对已生产的实例对象作更改, 比如下面的lilei, 我们在修改以后调用lilei.sayHello()还是会报错.

function Person(name){
this.name = name;
} var lilei = new Person("Lilei"); var overridePrototype = {
constructor: Person,
sayHello: function(){
return "Hello, I'm " + this.name;
}
}; // lilei.sayHello(); // Error Person.prototype = overridePrototype ;
// lilei.sayHello(); // Error var hanmeimei = new Person("Hanmeimei");
hanmeimei.sayHello(); // "Hello, I'm Hanmeimei"

最新文章

  1. 设备旋转,创建水平模式布局--Android studio
  2. iOS - (调用系统本机发送短信功能)
  3. jsCodeWar 多函数嵌套调用
  4. django-ajax之post方式
  5. 使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(七)-- 结构化配置
  6. 在IT在系统中使用多租户技术的跨部门和虚拟团队的解决方案为员工提供(草案)
  7. WordPress BuddyPress Extended Friendship Request插件跨站脚本漏洞
  8. Linux运维常用的命令详解
  9. Brackets 前端编辑器试用
  10. 聊聊并发(一)深入分析Volatile的实现原理
  11. IdentityServer4实战 - AccessToken 生命周期分析
  12. pta-树种统计
  13. python,字符串方法
  14. scoketserver模块(TCP协议 与 udp 协议)
  15. js变量的解构赋值
  16. 关于NFS服务器权限的四种情况
  17. [转][访谈] Olivier Grisel谈scikit-learn和机器学习技术的未来
  18. Linux CPU信息和使用情况查看(CentOS)
  19. mysql中使用行号
  20. spring中的BeanFactory与ApplicationContext的作用和区别

热门文章

  1. Linux中touch命令使用(创建文件)
  2. oracle利用触发器实现主键字段自增
  3. [IMX6DL] CPU频率调节模式以及降频方法
  4. OpenJudge计算概论-最长单词2
  5. web手工项目03-登录功能测试用例及缺陷编写-流程图画法-前后台下单及发货流程图-流程图设计测试用例方法-功能测试涉及到的四种数据库场景
  6. 怎样创建一个OpenStack官方账号?
  7. 利用Python获取cookie的方法,相比java代码简便不少
  8. Python 爬虫从入门到进阶之路
  9. django模板--条件控制标签
  10. 给 textbox TextMode="password" 赋值后显示出来