我正在尝试使用sublime text的控制台(here)运行一个简单的JavaScript程序。



var clientData ={
	id: 123,
	fullName: 'Not set',
	setFullName: function (fName, lName) {
		this.fullName = fName + " "+ lName;

	}
}

function getInput(firstName, lastName, callback) {
	if (typeof(callback==="function")) {
		callback(firstName, lastName);
	}
}

getInput("Alex", "Smith", clientData.setFullName)

console.log(window.fullName);





即使它在浏览器中工作得很好,我也无法使用window对象,因为它在崇高文本的控制台中引发了以下错误:

console.log(window.fullName);
        ^
ReferenceError: window is not defined
    at Object.<anonymous> (/Users/Desktop/My JS Exercises/callbackFnsOnObjs.js:18:13)
    at Module._compile (module.js:643:30)
    at Object.Module._extensions..js (module.js:654:10)
    at Module.load (module.js:556:32)
    at tryModuleLoad (module.js:499:12)
    at Function.Module._load (module.js:491:3)
    at Function.Module.runMain (module.js:684:10)
    at startup (bootstrap_node.js:187:16)
    at bootstrap_node.js:608:3


我做了很多研究,但无法提出在这里抛出此错误的确切原因。任何帮助和可能的补救措施将非常有用。

最佳答案

这是因为用于运行JavaScript的工具是node。节点是无头环境;它没有DOM,因为它只是V8引擎,而不是Web浏览器。

您可以通过在代码顶部添加window声明来解决此问题:

global.window = {}

07-24 18:07