JavaScript中C外部声明的等价物
编写一些JS,并希望在我的JS脚本的主体中具体列举我从其他文件导入的内容。对于JS是否有一个等价于C的JavaScript中C外部声明的等价物,javascript,c,Javascript,C,编写一些JS,并希望在我的JS脚本的主体中具体列举我从其他文件导入的内容。对于JS是否有一个等价于C的extern声明 谢谢 函数范围之外声明的变量在JavaScript中是全局变量。例如,如果您有两个JS文件,并且在第一个文件中声明了一个变量“myObject”,则该变量将在第二个文件的作用域内,并且如果第一个文件已加载到浏览器中,则该变量将被声明为可使用 如果需要访问JS文件之间的对象,最好将一个对象公开到全局名称空间,并在该对象上声明字段和方法 文件1: var myObject; myO
extern
声明
谢谢 函数范围之外声明的变量在JavaScript中是全局变量。例如,如果您有两个JS文件,并且在第一个文件中声明了一个变量“myObject”,则该变量将在第二个文件的作用域内,并且如果第一个文件已加载到浏览器中,则该变量将被声明为可使用 如果需要访问JS文件之间的对象,最好将一个对象公开到全局名称空间,并在该对象上声明字段和方法 文件1:
var myObject;
myObject.myField = "Field!";
文件2:
myObject.prototype.myFunction = function () {
return this.myField;
};
希望这能有所帮助,很高兴听到其他建议并接受更正:在JavaScript中没有C
extern
声明的等价物,因为JavaScript不需要像C那样在使用变量之前声明它们
如果您的JavaScript代码依赖于
窗口
对象上定义的某些属性,只需在文件顶部附近的注释中记录这些属性。遗憾的是,JavaScript没有用于控制导入或不导入内容的内置功能
默认情况下,页面中加载的所有sript都会将其全局变量写入相同的共享全局范围。解决这一问题的唯一方法是编写脚本,以便使用
或者,您可以使用人们提出的模块系统扩展之一。例如,您可以使用CommonJS模块系统编写脚本,它将使脚本中的顶级
var
声明无法从其他脚本中看到,并允许您显式导出所需的值。有些运行时(如nodejs)可以本机运行CommonJS模块,而对于那些不运行CommonJS模块的运行时(如浏览器),您可以使用browserify之类的工具将CommonJS模块编译成一个文件,该文件可以放入脚本标记中,这样做仍然是正确的。什么是.prototype
成员?@AndrewC From[:因为Javascript并没有确切的子类对象,所以prototype是一个有用的解决方法,可以使某些函数的“基类”对象充当对象。