JavaScriptには厳密にはクラスやメソッドというものはないとのことですが、
ちょっと違ってて、「クラス」は無いけど、オブジェクトとメソッドはきちんと定義されてる、
って感じかな。
javascript のベースとなってる EMCAScript では、きちんと言及されてます。
http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf
↑の Section 4.2 とか 8.6 とかね。
で、書き方はいろいろあります。
EMCAScript の規格を作った人たちが想定してたのは、こういう書き方。
var Node = function(){
}
Node.prototype.setName = function(name){
this.name = name;
}
id:koime_ryokutya さんが書いたのと、ほとんど一緒なんだけど、メソッド setName のスコープがちょっと違う。
こっちの書き方は、Java なんかと同じで、メソッドに閉じたスコープか、その外(グローバル)のスコープしか無いんだけど、
質問にあるコードだと、メソッド setName のスコープは、コンストラクタのスコープになる。
Prototype.js が好きな人の流儀は、これ。
var Node = (function() {
function setName(name) {
this.name = name;
}
return {
setName: setName
}
})()
Prototype.js を使う側の人は、こう書く。
var Node = Class.create({
initialize: function() {
},
setName: function(name) {
this.name = name;
}
});
よく分からなくても、「いろいろな流儀があるんだなあ」程度の理解で良いです。
多分、ちょっとすると、「クラスを派生したいんだけど...」となるはずで、
そのときには、最初に書いたやり方とか、質問で上げてる書き方だと、
多分、壁にぶち当たるはずで、そのときに後の方の書き方の意味が分かってくるはずだから。