13

私は Crockford がJavaScript をより明らかに原型的な方法で使用することを推し進めていることを読んだことがあります(「新しい」キーワードを使用せずに、オブジェクトを複製して新しいオブジェクトを作成します)。しかし実際には、このスタイルを大規模なプロジェクトに使用している人を見たことがありません。

このスタイルを使用する大規模なプロジェクトの例はどこにありますか?

4

3 に答える 3

5

アンチ awnser を提供する必要があります ;) ただし、それを使用する大きなプロジェクトも見たいです (存在する場合)。私は Object.create が大好きで気に入っていますが、大規模なプロジェクトで広く使用できたことも、そうあるべきだと感じたこともありません。

  1. オブジェクト指向の開発者は、'new' 演算子にはまっています。これを取り除くのは難しく、一目で理解するのは簡単です。古典的な方法で書かれたコードは、すぐに次の開発者に引き継がれやすくなり、これはすでに Object.create に対する強力な反論となっています。

  2. ES5 (次の JS バージョン) の Object.create は非常に強力で、ES3 (現在の JS バージョン) のシムとしての Object.create とは大幅に異なります。このため、ES5 が主流になると、現在実装可能なものとは異なる動作をするため、大きなプロジェクトで広く使用されている戦略として Object.create (現在利用可能なもの) を避ける方がよいでしょう。

  3. 大規模なプロジェクトはフレームワークを利用し (ゼロからすべてを何度も再発明することを主張する悪党 JS の「忍者」がいない場合)、人気のあるすべてのフレームワークは古典的な方法でプロトタイプの継承を促進します。それらには Object.create メソッドが .clone() などの形式である可能性がありますが、オブジェクトの継承とサブクラス化に関するチュートリアルとドキュメントから隠されています。

  4. ES3 の Object.create ではプライベート プロパティを使用できません。Object.create をいじるほど、より多くの問題に遭遇しました。少年はそれをいじりました...

私は Object.create をいろいろいじり、'Objection' (興味があれば見つけられるでしょう ;) と呼ばれる小さなフレームワークを書きましたが、github へのリンクは控えています) および 'JSoo' (廃止されました)。大規模なプロジェクトの人的資源の観点から主流になり、保守可能になるには、あまりにもおどけた、未完成で進歩的なものです。サポーターでありながら、反対することをお勧めします。

于 2010-08-11T23:14:02.927 に答える
0

Nokia WRT Plug-in for Visual Studioは、 nokiaウィジェット開発者向けのプラグインです。

ノキアフォーラムから:

The Nokia WRT Plug-in for Visual Studio provides features that enable 
the creation, editing, testing, and deployment of WRT widgets from within
Visual Studio.
于 2010-08-12T12:49:46.053 に答える
-1

試してみてください:http ://showroom.auction123.com/auction123/index.html

newはまったく使用しません...関数の結果を設定し、それをクラスとして使用するだけです。

例えば:

// CLASS DECLARATION
var ClassName = function() {

  var public;
  var private;

  var publicFunction = function() {
    // DO STUFF
  };

  // RETURN  OBJECT
  return {
     public: public,
     publicFunction: publicFunction
  };

};

最終的なリターンは、何が公開されるかを伝えるだけです。

次のようにしてインスタンス化します。

var object = ClassName();
于 2010-08-09T00:43:22.583 に答える