哪位高人讲解一下,这段JS什么意思,为什么会出错!
<script language="javascript" type="text/javascript">
//出错了,栈溢出。
Object.extend = function(destinction, source)
{
for (property in source)
{
destinction[property] = source[property];
}
return destinction;
}
Object.prototype.extend = function(object)
{
return object.extend.apply(this,[this,object]);
}
//定义class1
function class1()
{
}
class1.prototype =
{
m1: function()
{
alert(1);
},
m2:function()
{
alert("m2");
}
}
//定义class2
function class2()
{
} class2.prototype = (new class1()).extend(
{
m1: function()
{
alert("class2");
}
});
var obj1 = new class1();
var obj2 = new class2();
obj1.m1();
obj1.m2(); obj2.m1();
obj2.m2();
</script>
<script language="javascript" type="text/javascript">
//出错了,栈溢出。
Object.extend = function(destinction, source)
{
for (property in source)
{
destinction[property] = source[property];
}
return destinction;
}
Object.prototype.extend = function(object)
{
return object.extend.apply(this,[this,object]);
}
//定义class1
function class1()
{
}
class1.prototype =
{
m1: function()
{
alert(1);
},
m2:function()
{
alert("m2");
}
}
//定义class2
function class2()
{
} class2.prototype = (new class1()).extend(
{
m1: function()
{
alert("class2");
}
});
var obj1 = new class1();
var obj2 = new class2();
obj1.m1();
obj1.m2(); obj2.m1();
obj2.m2();
</script>
类的继承改一个字母就行<script language="javascript" type="text/javascript">
//出错了,栈溢出。
...
Object.prototype.extend = function(obj) // 这里的object 最好不要
// 这么写 一般写 obj
// 这样就不会confuse了
{
return Object.extend.apply(this,[this,obj]); // 第一个小写字母o,
// 改成大写字母O
}
...
</script>