我们说我有以下课程:
var ie = function() {
return new ActiveXObject('InternetExplorer.Application');
}
现在我想为IE的Navigate方法添加别名,例如:
ie.prototype.goto = function() {
this.Navigate('http://www.google.com'); // where 'this' should be ie
}
当然,这不起作用,我认为是因为班级不知道它的类型改变"在它返回之前。那么如何将.goto()方法绑定到[Internet Explorer]而不是[object object]?根据我的理解,当call(),apply()或bind()派上用场时,我真的不知道如何使用它们。
答案 0 :(得分:1)
您可以在返回对象之前将其添加到对象中:
var ie = function() {
var ieObj = new ActiveXObject('InternetExplorer.Application');
ieObj.goto = function () { ieObj.Navigate('http://www.google.com'); };
return ieObj;
};
var nav = ie();
nav.goto();
new ActiveXObject()
没有返回ActiveXObject
的实例,因此您无法修改原型,以便让您自动创建的所有实例都具有特定方法。即使您可以这样做,也意味着您创建的所有 ActiveXObject
将拥有该方法,这不是理想的情况。