Js中给对象增加一个原型方法

每个对象都有原型,创建对象时可以选择对象的原型方法。

var stooge = {
	"first-name" : "Jerome",//属性名中如果包含非法的JS标识符或是JS保留字,必须用引号 ,反之可不用引号
	"last-name" : "Howard"
}

  

//每个对象都有原型,创建对象时可以选择对象的原型方法。
//给x增加一个beget方法,这个beget方法创建一个使用原有对象的新对象。
var x = {};
if(typeof x.beget !== 'function'){
	x.beget = function(o){
		var F = function(){}
		F.prototype = o;
		return new F();
	}
}
var another_stooge = x.beget(stooge);//以stooge为原型创建another_stooge对象

  //创建方法供html调用

function prototypeMethod(){
	//原型连接在更新中不起作用,我们对新对象做出改变时,不会像引用一样对原型对象进行修改
	document.getElementById('Prototype1').innerHTML = "修改新对象前属性值:"+another_stooge['first-name']+"  "+stooge['first-name']
	another_stooge['first-name'] = 'Harry';
	document.getElementById('Prototype2').innerHTML = "修改新对象后属性值:"+another_stooge['first-name']+"  "+stooge['first-name']
	delete another_stooge['first-name'];
	document.getElementById('Prototype3').innerHTML = "删除新对象属性后值:"+another_stooge['first-name']+"  "+stooge['first-name']
	//新对象添加属性,不影响原型数据结构
	another_stooge.newValue = 'newValue';
	document.getElementById('Prototype3').innerHTML = "新对象添加属性,不影响原型数据结构:"+another_stooge['newValue']+"  "+stooge['newValue']
	//在原型中添加属性,新对象也能获取到
	stooge.addValue = 'addValue';
	document.getElementById('Prototype4').innerHTML = "在原型中添加属性,新对象也能获取到:"+another_stooge['addValue']+"  "+stooge['addValue']
}
//注:原型是一种动态关系,个人理解 相当于java的继承关系。

 其中HTML中代码为

 

	<input type="button" οnclick="prototypeMethod()" value="原型"><br/>
	  	<div id='Prototype1'></div>
	  	<div id='Prototype2'></div>
	  	<div id='Prototype3'></div>
	  	<div id='Prototype4'></div>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值