浅谈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+Dhtml:WEB程序员简易开发工具包(预先体验版)
Nov 07 Javascript
JavaScript prototype对象的属性说明
Mar 13 Javascript
简介JavaScript中Math.LOG10E属性的使用
Jun 14 Javascript
bootstrap下拉列表与输入框组结合的样式调整
Oct 08 Javascript
JS制作类似选项卡切换的年历
Dec 03 Javascript
jQuery自定义元素右键点击事件(实现案例)
Apr 28 jQuery
JavaScript实现移动端页面按手机屏幕分辨率自动缩放的最强代码
Aug 18 Javascript
浅谈Postman解决token传参的问题
Mar 31 Javascript
jquery获取select选中值的文本,并赋值给另一个输入框的方法
Aug 21 jQuery
解决vue cli使用typescript后打包巨慢的问题
Sep 30 Javascript
react quill中图片上传由默认转成base64改成上传到服务器的方法
Oct 30 Javascript
JS实现TITLE悬停长久显示效果完整示例
Feb 11 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
世界上第一台立体声收音机
2021/03/01 无线电
用Zend Encode编写开发PHP程序
2006/10/09 PHP
php遍历目录与文件夹的多种方法详解
2013/11/14 PHP
XAMPP安装与使用方法详细解析
2013/11/27 PHP
PHP资源管理框架Assetic简介
2014/06/12 PHP
浅谈PHP的exec()函数无返回值排查方法(必看)
2017/03/31 PHP
PHP实现二维数组中的查找算法小结
2018/06/09 PHP
php探针使用原理和技巧讲解
2019/09/17 PHP
laravel-admin的图片删除实例
2019/09/30 PHP
js表格分页实现代码
2009/09/18 Javascript
cloudgamer出品ImageZoom 图片放大效果
2010/04/01 Javascript
jQuery EasyUI实现右键菜单变灰不可用效果
2015/09/24 Javascript
JS实现复制内容到剪贴板功能兼容所有浏览器(推荐)
2016/06/17 Javascript
基于jQuery实现页面搜索功能
2020/03/26 Javascript
bootstrap3-dialog-master模态框使用详解
2017/08/22 Javascript
详细分析单线程JS执行问题
2017/11/22 Javascript
百度地图去掉marker覆盖物或者去掉maker的label文字方法
2018/01/26 Javascript
微信小程序实现消息框弹出动画
2020/04/18 Javascript
vue 获取及修改store.js里的公共变量实例
2019/11/06 Javascript
JavaScript 浏览器对象模型BOM原理与常见用法实例分析
2019/12/16 Javascript
浅谈python抛出异常、自定义异常, 传递异常
2016/06/20 Python
Python中operator模块的操作符使用示例总结
2016/06/28 Python
Python模块搜索路径代码详解
2018/01/29 Python
Python脚本修改阿里云的访问控制列表的方法
2019/03/08 Python
Python基础之函数的定义与使用示例
2019/03/23 Python
Django框架 Pagination分页实现代码实例
2019/09/04 Python
python 元组的使用方法
2020/06/09 Python
基于CSS3实现的漂亮Menu菜单效果代码
2015/09/10 HTML / CSS
CSS3实现swap交换动画
2016/01/19 HTML / CSS
naturalizer加拿大官网:美国娜然女鞋
2017/04/04 全球购物
在线购买澳大利亚设计师手拿包和奢华晚装手袋:Olga Berg
2019/03/20 全球购物
美国室内盆栽植物购买网站:Plants.com
2020/04/24 全球购物
为什么如下的代码int a=100,b=100;long int c=a * b;不能工作
2013/11/29 面试题
实习生评语
2014/04/26 职场文书
学习党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
班主任工作实习计划
2015/01/16 职场文书