关于js类的继承问题 var abstractClass = { A:function(){ alert("a"); } B:function(){ alert("b"); }}var tempClass = { C:function(){ alert("c"); } D:function(){ alert("d"); }}有以上两个js类,现在我想tempClass继承abstractClass要怎么作呢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>无标题文档</title><script language="javascript" type="text/javascript">var abstractClass = function(){ }abstractClass.prototype = { A:function(){ alert("a"); }, B:function(){ alert("b"); }};var tempClass = function(){ }tempClass.prototype = { C:function(){ alert("c"); }, D:function(){ alert("d"); }};tempClass.prototype = new abstractClass();var t = new tempClass();t.A(); //父类的方法A</script></head><body></body></html> 你这个已经不是类(或构造函数)了var o = {};// 上面的代码跟下面的创建方式是一回事var o = new Object();你那么写生成的就是实例对象,既然不是构造函数(或者你说的“类”)也就无所谓什么继承了。如果非要实现,建议你把对象abstractClass的所有属性和方法copy过来,下面是示例代码:// extend tempClassfunction extendProperty(base, sub) { for(var p in base) { if(typeof sub[p] === "undefined") { sub[p] = base[p]; } }}var abstractClass = { A:function(){ alert("a"); }, B:function(){ alert("b"); }}var tempClass = { C:function(){ alert("c"); }, D:function(){ alert("d"); }}// extend nowextendProperty(abstractClass, tempClass);// testtempClass.A();tempClass.B();Enjoy!! java.util.Date类型在Ext表格中显示的问题 请问:如何去掉showModalDialog打开页面的标题上面的网页对话框以及右上角的X按钮 怎样设计滚动条有惯性? 请问梅兄.折叠的+,-这图片这样出现呢? javascript的执行的优先度的问题。帮忙解决! 如何用JavaScript调用IE的查找功能? EXTJS 4.2问题请教~ 关于在jsp中的javascript代码。 jsp向servlet传值,返回刷新后的页面问题 vue中对对象数组的对比 高分求教,谁能搞懂这个数字的具体含义 请问如何用js修改时间
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script language="javascript" type="text/javascript">
var abstractClass = function(){
}abstractClass.prototype = {
A:function(){ alert("a"); },
B:function(){ alert("b"); }
};var tempClass = function(){
}tempClass.prototype = {
C:function(){ alert("c"); },
D:function(){ alert("d"); }
};tempClass.prototype = new abstractClass();var t = new tempClass();
t.A(); //父类的方法A</script>
</head><body>
</body>
</html>
// 上面的代码跟下面的创建方式是一回事
var o = new Object();你那么写生成的就是实例对象,既然不是构造函数(或者你说的“类”)也就无所谓什么继承了。
如果非要实现,建议你把对象abstractClass的所有属性和方法copy过来,下面是示例代码:// extend tempClass
function extendProperty(base, sub) {
for(var p in base) {
if(typeof sub[p] === "undefined") {
sub[p] = base[p];
}
}
}var abstractClass = {
A:function(){ alert("a"); },
B:function(){ alert("b"); }
}var tempClass = {
C:function(){ alert("c"); },
D:function(){ alert("d"); }
}// extend now
extendProperty(abstractClass, tempClass);// test
tempClass.A();
tempClass.B();
Enjoy!!