因此,作为工作要求,我们的代码不能超过80列和250行。这意味着我必须返回并将我的代码分解为更小的文件,我正在探索一些选项。首先想到的是prototyping
使用JavaScript,因为我无法安装RequireJS
。其次,我的应用程序使用闭包。我的问题是:你能成为一个闭包的原型吗?示例如下。
档案#1
var app = (function () {
var _userName = "Steve";
function sayHello() {
return "Hello " + _userName;
}
return {
sayHello: sayHello
}
})();
档案#2
app.prototype.sayGoodbye = function() {
return "Goodbye " + _userName;
};
输出
app.sayHello(); // should output "Hello Steve"
app.sayGoodbye(); // should output "Goodbye Steve"
然而,这似乎不起作用,因为sayGoodbye()
函数不包含在闭包中。但是,如果告诉sayHello()
函数使用sayGoodbye()
,那也不起作用。关于如何跨多个文件构造闭包对象的任何建议?谢谢!
答案 0 :(得分:1)
您可以像这样更改closure function
这是一个closure function
,看起来更像是class
var app = (function() {
// This is your constructor
function app() {
this._userName = "Steve";
}
function hello() {
return "Hello " + this._userName;
}
// This is made to do the above function hello() public
app.prototype.sayHello = function() {
return hello.call(this);
}
// Here we return the app object to be able to do a prototype
return app;
})();
// Here we do our prototype
app.prototype.sayGoodbye = function() {
return "Goodbye " + this._userName;
}
// Here we create an instance
var a = new app();
console.log(a.sayHello()); // should output "Hello Steve"
console.log(a.sayGoodbye()); // should output "Goodbye Steve"