这样obj2能不能说继承了obj1? 代码如下:var obj1={a:1,method:function(){return 123}}
var obj2={}
for (q in obj1){
obj2[q]=obj1[q]
}
alert(obj2.method())
var obj2={}
for (q in obj1){
obj2[q]=obj1[q]
}
alert(obj2.method())
解决方案 »
- js中的函数能否使用另一个函数中的变量
- js 一些问题
- jQuery中两个div连动时的问题,高手帮忙一下!
- 菜鸟求助,急,在线等
- 求教:EXT GRID保存時驗證日期格式
- 有关无边框窗口的问题
- javascript中,设计一个类Class1,var aa = new Class1(),既有aa[6],又有aa['field3'],还有aa.property1,aa.property2,请问怎么设计这个类?
- javascript如何修改指定文件名
- 求助:关于页面注册验证输入内容的问题!!!
- 想实现这样一个效果
- 【散分】又花了一晚上更改了前个晚上写的JavaScript小游戏(高难度版)
- js判断当前页面是否刷新,刷新不执行js代码。
//1.不是继承,是克隆
//2.继承的唯一写法
function A() {this.name1 = "a";}
A.prototype.getName1 = function(){return this.name1;}function B(){this.name2 = "b";}
B.prototype = new A();//通过prototype继承
B.prototype.constructor = B;//new B()后 对象的构造方法是自己B
B.prototype.getName2 = function(){return this.name2;}var b = new B();
alert(b.getName1())
alert(b.getName2())//3.克隆功能的可以写个公共方法 Object.prototype.clone = function()
{
//具体业务
}
var obj = new B();
obj.name2 = "2b";
alert(obj.clone().getName2());
现在重新总结一下:
只要让继承者有了被继承者的全部方法和属性,就叫继承,那种超类和基类 只算继承的一种。
所以下面这个深拷贝就可以叫继承var obj1={a:1,method:function(){return 123}}
var obj2={}
for (q in obj1){
obj2[q]=obj1[q]
}
alert(obj2.method())