共有セッションに参加していたので試してみたいと思っていましたが、近くにコンピューターがありませんでした。今日Firebugを開いた瞬間、ふとこんなことを思い出しました。以前から考えていたプランを早速実行してみました。できる!コードは次のとおりです。
function a( ){
var arr = Array(arguments);
alert(arr instanceof Array)
}
a('b');
百度タングラムを視聴する場合、最も一般的なのは String('a string') ですが、これは空の文字列リテラルへの加算を使用して型変換を強制する実際のローカル使用法とは異なります。そのとき、Array()が実装できたらもっと楽しいのではないかと思いました。確かに。そしてなぜですか?この出力されたログを確認してください:
console.log (Array,[],Array(),new Array())
// => [未定義] [] [] []
console.log(Array(' sofish'), [ 'sofish'], new Array('sofish'))
// => ["sofish"] ["sofish"] ["sofish"]興味深いですね。実際、 new Array() と同様に、 new を省略して Array() に変更すると、空の配列インスタンスが作成されます。
どちらの方法が良いかについては、あまり多くの状況に遭遇したことがないので説明できません。型変換を頻繁に使用する必要があるため、さらに詳細な調査を行う必要があります。最初の方法は、少なくとも多くの一般的なフレームワークで使用されている方法です。一般に、関数の引数オブジェクトを配列に変換して、さらに多くのことを実行できるようにするために使用されます。使用する場合は、最初の保険の方法を使用してください。