浅谈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 相关文章推荐
setTimeout()递归调用不加引号出错的解决方法
Sep 05 Javascript
js判断滚动条是否已到页面最底部或顶部实例
Nov 20 Javascript
浅谈JavaScript function函数种类
Dec 29 Javascript
javascript常用功能汇总
Jul 05 Javascript
原生js三级联动的简单实现代码
Jun 07 Javascript
原生JS实现几个常用DOM操作API实例
Jan 19 Javascript
jquery实现焦点轮播效果
Feb 23 Javascript
vue 修改 data 数据问题并实时显示的方法
Aug 27 Javascript
layui监听select变化,以及设置radio选中的方法
Sep 24 Javascript
封装Vue Element的table表格组件的示例详解
Aug 19 Javascript
Vue ECharts实现机舱座位选择展示功能
May 15 Vue.js
Typescript类型系统FLOW静态检查基本规范
May 25 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
使用phpQuery获取数组的实例
2017/03/13 PHP
详解php与ethereum客户端交互
2018/04/28 PHP
提高Laravel应用性能方法详解
2019/06/24 PHP
jQuery 开发者应该注意的9个错误
2012/05/03 Javascript
使用focus方法让光标默认停留在INPUT框
2014/07/29 Javascript
Windows系统下使用Sublime搭建nodejs环境
2015/04/13 NodeJs
jquery+html5烂漫爱心表白动画代码分享
2015/08/24 Javascript
纯javascript响应式树形菜单效果
2015/11/10 Javascript
关于微信jssdk实现多图片上传的一点心得分享
2016/12/13 Javascript
深入掌握 react的 setState的工作机制
2017/09/27 Javascript
详解如何更好的使用module vuex
2019/03/27 Javascript
vue2 拖动排序 vuedraggable组件的实现
2019/08/08 Javascript
移动端手指操控左右滑动的菜单
2019/09/08 Javascript
解决Vue中的生命周期beforeDestory不触发的问题
2020/07/21 Javascript
Vue左滑组件slider使用详解
2020/08/21 Javascript
[02:40]DOTA2殁境神蚀者 英雄基础教程
2013/11/26 DOTA
python 判断自定义对象类型
2009/03/21 Python
python 图片验证码代码分享
2012/07/04 Python
Python使用struct处理二进制的实例详解
2017/09/11 Python
解决pandas使用read_csv()读取文件遇到的问题
2018/06/15 Python
这可能是最好玩的python GUI入门实例(推荐)
2019/07/19 Python
Python使用matplotlib绘制三维参数曲线操作示例
2019/09/10 Python
python实现将一维列表转换为多维列表(numpy+reshape)
2019/11/29 Python
python中watchdog文件监控与检测上传功能
2020/10/30 Python
Django vue前后端分离整合过程解析
2020/11/20 Python
python自动生成证件号的方法示例
2021/01/14 Python
CSS3不透明度实例讲解
2016/04/26 HTML / CSS
HTML5是否真的可以取代Flash
2010/02/10 HTML / CSS
纽约的奢华内衣店:Journelle
2016/07/29 全球购物
美国第二大连锁书店:Books-A-Million
2017/12/28 全球购物
The Kooples美国官方网站:为情侣提供的法国当代时尚品牌
2019/01/03 全球购物
经济实惠的名牌太阳镜和眼镜:Privé Revaux
2021/02/07 全球购物
含预算的公司户外活动方案
2014/08/16 职场文书
安全员岗位职责
2015/02/10 职场文书
银行大堂经理培训心得体会
2016/01/09 职场文书
外出考察学习心得体会
2016/01/18 职场文书