我想创建一个对象,返回没有在JavaScript中的关键字new
?返回一个对象,但不使用新的关键字,Javascript?
到目前为止我的代码结构;
myLib.func = (function() {
"use strict";
function func() {
this._init();
};
func.prototype._init = function() {
this.someVar = 5;
};
Return func;
})();
这显然只适用于使用关键字new
;
new myLib.func();
我该怎么做才能做到;
var func = myLib.func();
但它仍然会返回一个与第一个例子完全相同的对象吗?
我已经试过
myLib.func = (function() {
"use strict";
function func() {
if (window === this) {
return new myLib.func();
} else {
this._init();
}
};
func.prototype._init = function() {
this.someVar = 5;
};
Return func;
})();
这不工作,我从一个例子学到了约翰Resig的建设图书馆技巧滑动器25,http://ejohn.org/blog/building-a-javascript-library/
我知道目前已经有现有的框架,但是滚动自己会让我学到很多东西,正如你现在看到的那样不是很多!
这是真棒!非常感谢你:)我想我会用第二个例子,它更简洁,更易于阅读!感谢您的错字提示 – user2251919 2013-05-13 08:35:43
@ user2251919最后一件事,我只会写'new func();'而不是'new myLib.func();'。通过这样做,代码变得更加便携。例如,如果您决定重命名'myLib',或者重新分配'myLib.func',那么代码仍然会按预期运行。 – 2013-05-13 08:43:21
再次感谢,一个非常好的提示。 – user2251919 2013-05-13 08:48:21