关于 JS 的继承

it2023-10-09  71

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(); //会报错的
最新回复(0)