JavaScript の「厳格モード」で問題が発生しています。ライブラリコンストラクターをコーディングしていましたが、ライブラリの先頭で厳密モードを有効にすると、"use strict";
このエラーが発生します - Uncaught TypeError: Cannot set property 'e' of undefined
. 以下は私のコンストラクタコードです:-
(function(window, document, undefined){
"use strict";
function Ram(CSSselector) { //The main Constructor of the Library
if (this === window) { return new Ram(CSSselector); }
if ((CSSselector !== undefined) && (typeof CSSselector === "string")) {
this.e = catchEl(CSSselector);
} else {
this.e = CSSselector;
}
this.cssSel = CSSselector;
}
}(this, this.document));
@Dave のおかげで、次の方法で問題を解決できました:-
function Ram(CSSselector) { //The main Constructor of the Library
if (this === window) { return new Ram(CSSselector); }
//This code helps to call the constructor without the new keyword!
//Thanks to Dave for help!
if (this instanceof Ram) {
this.e = ((CSSselector !== undef) && (typeof CSSselector === "string")) ? catchEl(CSSselector) : CSSselector;
this.cssSel = CSSselector;
} else {
return new Ram(CSSselector);
}
}