浅谈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 相关文章推荐
用JavaScript实现仿Windows关机效果
Mar 10 Javascript
jquery animate图片模向滑动示例代码
Jan 26 Javascript
js的表单操作 简单计算器
Dec 29 Javascript
addEventListener和attachEvent二者绑定的执行函数中的this不相同
Dec 09 Javascript
jquery 取子节点及当前节点属性值
Jul 25 Javascript
不同编码的页面表单数据乱码问题解决方法
Feb 15 Javascript
jquery easyui datagrid实现增加,修改,删除方法总结
May 25 Javascript
JS实现的适合做faq或menu滑动效果示例
Nov 17 Javascript
使用JavaScript破解web
Sep 28 Javascript
vue - vue.config.js中devServer配置方式
Oct 30 Javascript
详解Vue3 Composition API中的提取和重用逻辑
Apr 29 Javascript
解决Vue中的生命周期beforeDestory不触发的问题
Jul 21 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
多人战的战术与战略
2020/03/04 星际争霸
给php新手谈谈我的学习心得
2007/02/25 PHP
php FPDF类库应用实现代码
2009/03/20 PHP
PHP图片验证码制作实现分享(全)
2012/05/10 PHP
session在php5.3中的变化 session_is_registered() is deprecated in
2013/11/12 PHP
简单谈谈php浮点数精确运算
2016/03/10 PHP
PHP创建对象的六种方式实例总结
2019/06/27 PHP
准确获得页面、窗口高度及宽度的JS
2006/11/26 Javascript
js 数组克隆方法 小结
2010/03/20 Javascript
Extjs4中的分页应用结合前后台
2013/12/13 Javascript
Angularjs material 实现搜索框功能
2016/03/08 Javascript
js style.display=block显示布局错乱问题的解决方法
2016/09/21 Javascript
微信小程序 tabs选项卡效果的实现
2017/01/05 Javascript
AngularJS实现使用路由切换视图的方法
2017/01/24 Javascript
Parcel 打包示例(React HelloWorld)
2018/01/16 Javascript
vuejs2.0运用原生js实现简单拖拽元素功能
2020/08/21 Javascript
jQuery实现每日秒杀商品倒计时功能
2019/09/06 jQuery
Vue data的数据响应式到底是如何实现的
2020/02/11 Javascript
python僵尸进程产生的原因
2017/07/21 Python
使用Python的package机制如何简化utils包设计详解
2017/12/11 Python
Python 编码规范(Google Python Style Guide)
2018/05/05 Python
解决nohup执行python程序log文件写入不及时的问题
2019/01/14 Python
python UDP(udp)协议发送和接收的实例
2019/07/22 Python
使用Python制作新型冠状病毒实时疫情图
2020/01/28 Python
在python中修改.properties文件的操作
2020/04/08 Python
python 解决Fatal error in launcher:错误问题
2020/05/21 Python
html5开发三八女王节表白神器
2018/03/07 HTML / CSS
澳大利亚优质的家居用品和生活方式公司:Bed Bath N’ Table
2019/04/16 全球购物
Delphi工程师笔试题
2013/09/21 面试题
顶岗实习接收函
2014/01/09 职场文书
商务经理岗位职责
2014/08/03 职场文书
校运动会广播稿(100篇)
2014/09/12 职场文书
2014年项目经理工作总结
2014/11/24 职场文书
远程教育集中轮训基层干部培训班学习心得体会
2016/01/09 职场文书
MATLAB 全景图切割及盒图显示的实现步骤
2021/05/14 Python
教你一步步实现一个简易promise
2021/11/02 Javascript