2011-12-29 16 views
5

ECMAScriptオブジェクトのthe internal [[Class]] propertyを設定できますか?ECMAScriptオブジェクトの内部[[クラス]]プロパティを設定できますか?

+2

注持つユーザランドのコードをだますことができ

[[Class]]プロパティはES6に削除されます。 – Raynos

+0

@レイノス面白い。それでは 'Array.isArray()'とそれに類する関数はどのように動作しますか? –

+0

わからない、彼らはおそらく 'Array.protototype.isPrototypeOf(someArray);' – Raynos

答えて

1

まともなjavascriptエンジンを騙すことはできません。あなたは内部のことを

x.toString = function() { 
    return '[object Array]'; 
} 
+5

これは' Object.prototype.toString.call(object) 'では動作しません。 – xfix

+0

@xfix誰でも 'Object#toString'をオーバーライドすることができます(ただし全く推奨されません)。 – minmaxavg

+0

@minmaxavg' [[class]]をオーバーライドしたい理由は、通常、 'Object.prototype .toString.call'を実行してオブジェクトの型を取得します。 – Taurus

関連する問題