在外部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范围中定义的用户变量。
在另一个文件中:
Person.prototype.sayHello = function() {
console.log('Good morning ' + user);
}
var p = new Person();
p.init();
发布于 2014-05-03 23:56:53
任何函数之外的var user
都会在全局范围内创建一个变量,因此您可以使用它的名称从任何其他文件中访问它。
但是,如果您的代码正在运行,例如在nodejs环境中,文件有它们自己的作用域,那么您将退出或者幸运- JavaScript没有很好的内省工具,可以让您窥探到外部作用域。
https://stackoverflow.com/questions/23451056
复制相似问题