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>每个对象都有原型,创建对象时可以选择对象的原型方法。 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中代码为
