1
我想檢查一下我是否可以使用以下對象中的函數。如何找出對象中是否存在聲明的函數?
我的目標代碼:
var joe = joe || {};
(function(window, document, undefined) {
'use strict';
joe.test = (function()
{
// --------------------------
var testing = function() {
console.log("testing is here");
};
// --------------------------
return {
testMe:testing
}
})();
}(window, document));
我的跳棋:沒有人工作。
if ((window.joe == 'undefined') && (window.joe.test == 'undefined')) {
console.log("1:not here ");
} else {
console.log("1:there ");
}
if ((typeof joe == "object") && (joe.test.testMe in window)) {
console.log("2:there");
} else{
console.log("2:not there");
}
if ((typeof joe == "object") && (joe.test.testMe == "function")) {
console.log("3:there");
} else {
console.log("3:not there");
}
如何才能知道函數joe.test.testMe存在,但未聲明時未發生錯誤?
THX的回答:如果我刪除了喬對象,我會收到以下錯誤:的ReferenceError:喬沒有定義。那就是我想避免的。 – hamburger
我不認爲我完全理解這一說法。但是你確實需要在每個語句之前使用'typeof'。我會把它放在我的答案中來展示它應該如何看待。 –