扩展/覆盖原型函数,同时保持外部文件的作用域
Extend/override prototype function while keeping scope of external file
在外部js (person.js)文件中,我有这样的内容:
var user = 'John';
function Person() { );
Person.prototype.sayHello = function() {
console.log('Hello ' + user);
}
Person.prototype.init = function() {
this.sayHello();
}
如何在不修改原始文件的情况下重写javascript中的sayHello方法?如果我在加载后但在调用init()之前预定义它,它可能会起作用,但我无法访问person.js范围内定义的user变量。
在另一个文件:
Person.prototype.sayHello = function() {
console.log('Good morning ' + user);
}
var p = new Person();
p.init();
var user
在任何函数之外都会在全局作用域中创建一个变量,因此您可以通过简单地使用它的名称从任何其他文件访问它。
然而,如果你的代码运行在nodejs环境中,文件有自己的作用域,那么你就很幸运了——JavaScript没有很好的自省工具让你窥探外部作用域。
相关文章:
- 将外部文件与AngularJs集成
- 动态地包含来自外部文件PHP的JavaScript
- LeadLander formalyze_init.js Javascript外部文件
- 我的代码在<脚本>标记,但没有'不能在外部文件中工作
- 如何用HTML中的JSON外部文件填充下拉按钮
- 如何在从外部连接时将外部文件包含到node-js项目中
- 访问模块.从外部文件导出
- 无法从 jquery 中的外部文件调用特定内容
- 无法让 javascript 从外部文件工作
- 将变量从服务器上的外部文件加载到 HTML 文档中
- 对 jquery 库 + 外部文件的 HTML 引用
- 如何在 webpack 中包含外部文件
- Highcharts赢得't加载表单外部文件
- 如何在外部文件中创建选择菜单并将其嵌入到html中以显示菜单
- Javascript和CSS,内部HTML与外部文件
- 包括从外部文件到HTML的查询功能(使用Dropbox进行本地测试)
- 使用load()加载外部文件,然后使用fancybox插件进行修改并显示
- 如何在外部文件中存储谷歌地图选项
- 用javascript(不带外部文件)将html加载到另一个html中
- 从外部文件设置tinymce的内容