var is = function(obj,type){
var toString =Object.prototype.toString,unknown;
return obj===null&&type==='Null'||
obj===unknown&&type==='Unknown'|| call(obj ).slice(8,-1)===type;
}
//元のテキストでは、各論理 AND 演算を括弧で囲んでいますが、演算子の優先順位に従って括弧を使用できます。省略されます
// 最初の行は、unknown を宣言しています。私の個人的な理解は、ECMA の説明によると、パフォーマンスを向上させ、最上位スコープでの unknown のクエリを回避することです。 262、 Object.prototype.toString() は、オブジェクト インスタンスのタイプを返し、「[object "、class、および "]" 形式の文字列を返します。」
したがって、スライスを通じて「クラス」値をインターセプトします。これは型値です。
例外は、IE
標準ブラウザ [object Window] で
[object Object] を返すため、null および未定義です。
したがって、別途判断してください。
関連記事:
JavaScript ディープコピー