Javascriptでの単純な「クラス」インスタンス化に関するJohnResigの投稿で、彼は次のように述べています。
「...頻繁にアクセスする(オブジェクトを返す)関数を使用して、ユーザーが操作できるようにする場合は、オブジェクトのプロパティをプロトタイプチェーンに含めてインスタンス化することをお勧めします。これは、コード内にあります。 :"
// Very fast
function User(){}
User.prototype = { /* Lots of properties ... */ };
// Very slow
function User(){
return { /* Lots of properties */ };
}
これを次のような関数に適用したいと思います(これはたまたま「クラス」宣言内にあります)
//...
this.get_subscription = function(args)
{
return {
property_one: "value",
property_two: {
sub_prop: args.something
}
}
}
しかし、引数をどこに置くべきかわかりません。私が行った場合
this.get_subscription = function(args) {}
this.get_subscription.prototype = {
property_one: "value"
//...
}
argsは未定義であると表示されます。私はいくつかのバリエーションを試しましたが、どれも機能しません。親クラスのスコープに引数を入れない方法で、これを適切に行うにはどうすればよいですか?