jQueryライブラリを使用してプラグインを作成しています。
ここでは、String.prototypeを変数に格納してから、この変数を使用してStingオブジェクトを拡張しています。そして、これは正常に機能しています。
// String Prototyping store in a variable
// Save bytes in the minified version of js
var StrProto = String.prototype;
String.prototype.toProperCase = function () {
return this.replace(/\w\S*/g, function (txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
});
};
// working fine
alert("yogesh kumar".toProperCase());
次のケースでは、 abc変数に格納されている m関数xyzを作成していますが、これも正常に機能しています。
function xyz(x){
alert(x)
}
var abc = xyz;
// working fine
abc("yogesh kumar");
最後のケースでは、 document.createElementを変数 タグに保存し、タグを使用してボタンを作成しています。しかし、これは機能していません。
var tag=document.createElement;
$(document.createElement("button")).html("document.Element").appendTo("#myDiv");
// not working
$(tag("button")).html("tag").appendTo("#myDiv");
jsFiddleのリンクを確認してください:
エラー:
Chromeの場合
- Uncaught TypeError:不正な呼び出し
Firefoxで
- エラー:NS_ERROR_XPC_BAD_CONVERT_JS:JavaScript引数を変換できませんでした
なぜこのエラーですか?
解決策は何ですか?