私はJava/C++ OOPのバックグラウンドから来て、JavaScriptの「オブジェクト指向」プログラミングに取り掛かりたいと思っています。私は、小さなフレームワークのソースを見て、私が奇妙に感じたものに気づいた。フレームワークはいくつかのグローバル関数を定義し、オブジェクト関数内からそれらの関数を呼び出します。明確にするために、次の例を示します。なぜJavaScriptプロトタイプ関数内のグローバル関数を使用するのですか?
var MyObject = function() {
function MyObject() {
this.x = 5;
}
MyObject.prototype.getX = function() {
return _MyObjectGetX(this);
};
return MyObject;
}();
var _MyObjectGetX = function(myObject) {
return myObject.x;
};
グローバル機能の使用方法はわかりません。グローバル関数が1つの場所でのみ使用されると仮定しましょう:MyObject.getX()。戻り値を関数本体に移動させるだけではどうですか?これは大丈夫ですか?
var MyObject = function() {
function MyObject() {
this.x = 5;
}
MyObject.prototype.getX = function() {
return this.x;
};
return MyObject;
}();
このフレームワークはCoffeeScriptで書かれ、JavaScriptに変換されました。 CoffeeScriptが不要なことがあるのでしょうか、またはJavaScriptが関数とオブジェクトを扱う方法を誤解していますか(あるいは、としてオブジェクト)?
実際の例には何らかの理由があるかもしれないが、作成された例には当てはまらないので、本当の例を投稿するほうがよいでしょう。 (その場合は、私は知りませんが、それはかなり可能と思われる。) – ruakh
@ruakh Brandanが右である場合は、実際の例では異なる唯一のものは、グローバル関数のいくつかは、複数のオブジェクトで呼び出さなっていることです。しかし、時にはそうではありません。 – WillP
フレームワークのCoffeeScriptソースコードはありますか?それは投機を絞り込むのに役立つかもしれない。 – ruakh