正直なところ、私はJavaScriptプロトタイプを理解しようとしていますが、あまり進歩していません。私がやろうとしていることを説明する方法が正確にはわかりませんが、最終的な目標の一部は、jQueryと同様にDOMをトラバースする方法を学び、アクセスされている特定の要素を操作するカスタムメソッドを追加することです。
編集:以下のコードは、これまでに受け取った回答から学んだ概念を反映し、それらが私が達成しようとしているものに達していない場所を示すために更新されました。
function A(id) {
"use strict";
this.elem = document.getElementById(id);
}
A.prototype.insert = function (text) {
"use strict";
this.elem.innerHTML = text;
};
var $A = function (id) {
"use strict";
return new A(id);
};
var $B = function (id) {
"use strict";
return document.getElementById(id);
};
function init() {
"use strict";
$A('para1').insert('text goes here'); //this works
$A('para1').innerHTML = 'text goes here'; //this does not work
console.log($A('para1')); //returns the object A from which $A was constructed
console.log($B('para1')); //returns the dom element... this is what I want
/*I want to have $A('para1').insert(''); work and $A('para1').innerHTML = '';
work the same way that $B('para1').innerHTML = ''; works and still be able
to add additional properties and methods down the road that will be able
act directly on the DOM element that is contained as $A(id) while also
being able to use the properties and methods already available within
JavaScript*/
}
window.onload = init;
可能であれば、コードが機能する理由と、それがこれを達成するための最良の方法であると考える理由の説明を追加してください。
注:私の問い合わせの全体的な目的は、これを自分で学ぶことです...jQueryの使用を提案しないでください。目的が損なわれます。