时间:2021-05-18
覆盖原型
//囚犯示例 //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 覆盖原型以及更改原型就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
整理《javascript高级程序设计》中继承的方法以及优缺点。1.原型链ECMAScript中描述了原型链的概念,并将原型链作为实现继承的主要方法。原型链继承
本文实例讲述了JavaScript原型与原型链用法。分享给大家供大家参考,具体如下:一句话说明什么是原型:原型就是一个JavaScript对象,原型能存储我们的
前言AngularJS中scope之间的继承关系使用JavaScript的原型继承方式实现。本文结合AngularJSScope的实现以及相关资料谈谈原型继承机
JavaScript中创建对象的模式汇总**JavaScript创建对象模式:对象字面量工厂模式构造函数模式原型模式结合构造函数和原型模式原型动态模式**面向对
JavaScript中的继承比较奇葩,无法实现接口继承,只能依靠原型继承。原型链原型就是一个对象,通过构造函数创建出来的实例会有指针指向原型得到原型的属性和方法