我想要實現一種單獨對象(下例中的About
),它本身位於另一個對象(Main
)內。在IE8中初始化另一個對象內的對象失敗
這是我的代碼。它適用於所有主流瀏覽器(Firefox,Chrome甚至IE9),但不適用於IE8。在IE8中,main.About.doSomething();
的調用拋出'Object不支持這個屬性或方法'。
這裏我也jsFiddled我的代碼:http://jsfiddle.net/c3URh/12/
我需要爲了得到它在IE8怎麼辦?
注:我可以打電話main.About().doSomething()
,它會在IE8的工作,但不會在其他瀏覽器中運行的,反正它是從面向對象的角度不正確。
我的缺陷代碼:
function About(){
this.doSomething = function(){
alert('a');
};
}
function Main(){
var about;
try {
Object.defineProperty(this, 'About', {
get: function() {
if (about == undefined) {
about = new About();
}
return about;
}
});
}
catch (e) {
// this code does not work in ie8. Throwing 'Object doesn't support this property or method'
this.About = function() {
if (about == undefined) {
about = new About();
}
return about;
};
}
}
function clickMe()
{
var main = new Main();
main.About.doSomething();
}