function A()
{
this.abc = '111';
}
A.prototype.show = function()
{
alert(this.abc);
}
function B()
{
A.call(this); //这一步是继承了A的属性,
/* .call()跟普通调用也没啥区别,
但A.call()里的第一个参数是改变A类里的this的值,
原本应该是window */
}
for(var i in A.prototype)
{ /*用循环,而不用直接让B.prototype = A.prototype,
不让他们指向同一存储空间,这样的话B类(子类)的方法只有子类有,
而A没有,如下面的报错情况。*/
B.prototype[i] = A.prototype[i];
}
B.prototype.fn = function()
{
alert('qwe');
}
var obj = new B();
obj.show();
var objA = new A();
objA.fn(); //会报错的