2

Facebook の JS SDK は最近、Object.keys()やなどの新しい ES5 Javascript メソッドの使用を開始しまし[].map()た。ES5()元のオブジェクト、目的のメソッドの名前、およびパラメーターを受け入れる関数を持つことにより、古いブラウザーを引き続きサポートします。次に、ネイティブ メソッドが使用できない場合は、ネイティブ メソッドまたは同等の JS メソッドのいずれかを実行します。例えば:

ES5(g.api.whitelist, 'forEach', true, function(ca) {
    s[ca] = 1;
});

または最上位オブジェクトの場合、

ES5('JSON', 'parse', false, r.responseText);

これはプリプロセッサの結果であると思われます.FBの開発者は実際には次の行に沿ってさらに何かを書いています.

g.api.whitelist.forEach(function(ca) {
    s[ca] = 1;
});

JSON.parse(r.responseText);

(おそらく、より長い変数名も)

さて、プリプロセッサがあると私が正しいと仮定すると、ES5() 関数と関連するプリプロセスはオープンソース プロジェクトですか、それとも社内のものですか? 社内の場合、オープンソース化の可能性について FB の誰かがコメントできますか? それは私が非常に便利だと思うものです。

4

3 に答える 3

5

実際、通常の ES5 コードを記述できるプリプロセッサ ( jspatchに基づく) を使用しています。ES5関数自体は、基本的に MDN および JSON3 からのポリフィルラッパーです

これにより、ES5 を記述できるようになるだけでなく、Function#bind やJSON.stringify.

ブログ投稿が公開されました

于 2012-09-11T00:46:49.470 に答える
1

Facebook のオープンソース github リポジトリを検索しても、ES5 メソッドは表示されません。私は明示的にチェックアウトし、javascript に言及しているものを再帰的に grep しました。したがって、あなたが見ているものは彼らから公に入手可能であるようには見えません. 他の場所でも見つけられませんでした。

ES5 の下位互換性が必要な場合は、このes5-shimをご覧ください。

于 2012-07-30T21:33:57.703 に答える
0

http://connect.facebook.net/en_US/all.js

これは、あなたの望むことですか?ファイルにライセンスがリストされておらず、自動生成されているように見えますか?

https://github.com/facebook/connect-js/

?

これは「はい」を指し、ライセンスはApacheになりますか?

于 2012-07-30T23:05:03.533 に答える