变量既可以是对象又可以同时是未定义的?

时间:2014-05-04 17:42:50

标签: javascript gruntjs jasmine phantomjs

我使用茉莉花chrome.storage这样的函数嘲笑spyOn

this.fakeChromeStorage = {};
chrome = { storage: { sync: {get: function() {}, set: function() {}}}};
spyOn(chrome.storage.sync, 'get').and.callFake(function(key, callback) {
    callback();
});

但是当我的应用程序调用时:

console.info(chrome.storage);
console.info(typeof chrome.storage);
console.info(chrome.storage.type);
console.info(typeof chrome.storage.type);

打印:

[object Object]
object
undefined
undefined

这怎么可能?

1 个答案:

答案 0 :(得分:1)

是的,chrome.storage是一个对象,chrome.storage.type是对象chrome.storage上的一个属性,它不存在,因此将是未定义的。