浅谈JavaScript 覆盖原型以及更改原型


Posted in Javascript onAugust 31, 2016

覆盖原型

//囚犯示例 
//1.定义原型对象 
var proto = { 
 sentence : 4, //监禁年限 
 probation: 2 //缓刑年限 
}; 
//2.定义原型对象的构造函数 
var Prisoner = function(name, id) { 
 this.name = name; 
 this.id = id; 
}; 
//3.将构造函数关联到原型 
Prisoner.prototype = proto; 
//4.实例化对象——采用工厂函数实例化对象 
var makePrisoner = function(name, id) { 
 //采用工厂函数实力化对象prisoner 
 var prisoner = Object.create( proto ); 
 prisoner.name = name; 
 prisoner.id = id; 
 return prisoner; 
}; 
 
var firstPrisoner = makePrisoner( 'Joe', '12A' ); 
 
//firstPrisoner.sentence在firstPrisoner对象找不到sentence属性, 
//所以查找对象的原型并找到了Both of these output 4 
console.log( firstPrisoner.sentence ); 
console.log( firstPrisoner.__proto__.sentence ); 
//把对象的sentence属性设置为10 
firstPrisoner.sentence = 10; 
//outputs 10 
//确定对象上的属性值已设置为10 
console.log( firstPrisoner.sentence ); 
//但是对象的原型并没有变化,值仍然为4 
console.log( firstPrisoner.__proto__.sentence ); 
//为了使获取到的属性回到原型的值,将属性从对象上删除 
delete firstPrisoner.sentence; 
//接下来,JavaScript引擎在对象上不能再找到该属性, 
//必须回头去查找原型链,并在原型对象上找到该属性 
// Both of these output 4 
console.log( firstPrisoner.sentence ); 
console.log( firstPrisoner.__proto__.sentence );

ubuntu 终端node输出

xxh@xxh-E440:~/workspace$ node t6 
4 
4 
10 
4 
4 
4

那么如果改变了原型对象的属性值,会发生什么呢?我知道你在思考。

以上这篇浅谈JavaScript 覆盖原型以及更改原型就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS 分号引起的一段调试问题
Jun 18 Javascript
jQuery each()方法的使用方法
Mar 18 Javascript
JSQL 基于客户端的成绩统计实现方法
May 05 Javascript
AJAX跨域请求json数据的实现方法
Nov 11 Javascript
JavaScript中使用Math.floor()方法对数字取整
Jun 15 Javascript
jquery判断输入密码两次是否相等
Apr 22 Javascript
jquery编写Tab选项卡滚动导航切换特效
Jul 17 Javascript
微信小程序  modal详解及实例代码
Nov 09 Javascript
使用Vue开发一个实时性时间转换指令
Jan 17 Javascript
微信小程序--获取用户地理位置名称(无须用户授权)的方法
Apr 29 Javascript
Vue分页插件的前后端配置与使用
Oct 09 Javascript
JS 逻辑判断不要只知道用 if-else 和 switch条件判断(小技巧)
May 27 Javascript
javascript 将共享属性迁移到原型中去的实现方法
Aug 31 #Javascript
使用vue编写一个点击数字计时小游戏
Aug 31 #Javascript
原生js实现tab选项卡切换
Mar 23 #Javascript
jquery的checkbox,radio,select等方法小结
Aug 30 #Javascript
Javascript日期格式化format函数的使用方法
Aug 30 #Javascript
浅析ES6的八进制与二进制整数字面量
Aug 30 #Javascript
AngularJS轻松实现双击排序的功能
Aug 30 #Javascript
You might like
php excel类 phpExcel使用方法介绍
2010/08/21 PHP
php从右向左/从左向右截取字符串的实现方法
2011/11/28 PHP
屏蔽机器人从你的网站搜取email地址的php代码
2012/11/14 PHP
php计算两个日期时间差(返回年、月、日)
2014/06/19 PHP
php实现cookie加密的方法
2015/03/10 PHP
图片自动缩小的js代码,用以防止图片撑破页面
2007/03/12 Javascript
javascript Array.sort() 跨浏览器下需要考虑的问题
2009/12/07 Javascript
JS时间选择器 兼容IE6,7,8,9
2012/06/26 Javascript
使用百度地图api实现根据地址查询经纬度
2014/12/11 Javascript
通过JS判断联网类型和连接状态的实现代码
2015/04/01 Javascript
巧方法 JavaScript获取超链接的绝对URL地址
2016/06/14 Javascript
js事件冒泡、事件捕获和阻止默认事件详解
2016/08/04 Javascript
Node.js 使用命令行工具检查更新
2017/06/08 Javascript
Ajax高级笔记 JavaScript高级程序设计笔记
2017/06/22 Javascript
详解react-webpack2-热模块替换[HMR]
2017/08/03 Javascript
微信小程序使用navigateTo数据传递的实例
2017/09/26 Javascript
Vue实现日历小插件
2019/06/26 Javascript
[01:30]我们共输赢 完美世界城市挑战赛开启全新赛季
2019/04/19 DOTA
Python编程中用close()方法关闭文件的教程
2015/05/24 Python
浅析Python中的赋值和深浅拷贝
2017/08/15 Python
对Python中的@classmethod用法详解
2018/04/21 Python
Python3导入CSV文件的实例(跟Python2有些许的不同)
2018/06/22 Python
TensorFlow实现Logistic回归
2018/09/07 Python
学习和使用python的13个理由
2019/07/30 Python
Django配置文件代码说明
2019/12/04 Python
纯CSS3打造动感漂亮时尚的扇形菜单
2014/03/18 HTML / CSS
Crucial英睿达法国官网:内存条及SSD固态硬盘升级
2018/07/13 全球购物
Jowissa官方网站:瑞士制造的手表,优雅简约的设计
2020/07/29 全球购物
个人自我鉴定怎么写
2013/10/28 职场文书
八项规定整改措施
2014/02/12 职场文书
秋季运动会广播稿
2014/02/22 职场文书
应届生求职自荐信
2014/07/04 职场文书
成都人事代理协议书
2014/10/25 职场文书
2014年销售工作总结范文
2014/12/01 职场文书
记者节感言
2015/08/03 职场文书
Python 文字识别
2022/05/11 Python