过去多啦不再A梦2017-07-05 11:08:44
これは、特定のデータ構造を比較するために作られたツール機能です。たとえば、データ構造の形式は次のとおりです:
リーリー現時点では、一般的な sort
メソッドは次の形式で記述する必要があります:
このコードの問題点:
value
パラメータはハードコーディングされているため、他のフィールドを並べ替えるときに再コーディングする必要があります。
1 / -1 を返すロジックは冗長で退屈です。
ソート用の匿名関数を直接記述することは、Little Red Book の時代には十分に読みにくくなりました (現在ではアロー関数があるため、実際には大きな問題ではありません)。
つまり、上記のケースでは、レッドブックの著者は、[特定のフィールドを並べ替えるための] 関数を生成するための一般的なツール関数を設計しました。このユーティリティ関数を呼び出すと、返されるのはソートされた結果 (いわゆる高階関数) ではなく、新しい関数であることに注意してください。
このパッケージを適用した後のコードは次のようになります:
リーリーこれはビジネス ロジックを簡素化する役割を果たします。
淡淡烟草味2017-07-05 11:08:44
理解できないのは、2 つのオブジェクトの特定の属性のサイズを比較すると -1 が返されるということですcreateComparisonFunction("test")({'test': 1}, {"test": 2})
巴扎黑2017-07-05 11:08:44
関数を呼び出すときは、2 つのステップで見てください。まず、createComparisonFunction()
传入比较的字段。在createComparisonFunction()
函数内,返回一个匿名函数。同时由于匿名函数处在createComparisonFunction()
内,所以你对createComparisonFunction()
传入的参数propertyName
对匿名函数也有效存在。
通过上一步,你已经得到的匿名函数包含propertyName
,此时你就可以传入你要比较的两个对象,在函数内比较他们的propertyName
属性を通じて比較結果を返します。