0
В других браузерах я могу вызвать родительский метод из свойства __proto__
. Но это не работает в IE8. Есть ли способ вызвать родительский метод в IE8? ПримерВызвать родительский метод IE8
Код:
function Foo() {
this.init = function (msg) {
alert("super method invoked");
};
this.toString = function() {
return "Foo";
}
}
FooExtended.prototype = new Foo();
function FooExtended() {
this.init = function (msg) {
if (this.__proto__ == undefined) {
alert("super invoke not supported")
} else {
this.__proto__.init(msg);
}
};
this.toString = function() {
return "FooExtended";
}
}
var foo = new FooExtended();
foo.init();
Это дает сообщение в консоли 'Foo.prototype.init' нуль или нет объекта – Mrusful
@Mrusful, ok, переместите определение Foo.prototype.init вне конструктора, то есть объявите его как var и присвойте его значение e как функция. Кроме того, вместо использования используйте вызов. – fred02138
Знаете ли вы, какая разница между 'Foo.prototype.init (this)' и 'FooExtended.prototype.init (this)'? Где 'this' является контекстом' FooExtended'. Если посмотрите на пример выше. – Mrusful