2017-02-16 4 views
0

Internet Explorerとの互換性を向上させるために、一部のネイティブコードをアプリケーションに手動でコピーしようとしています。クロームコンソールから:ブラウザでネイティブソースコードを表示する方法は?

[].find.toString(); 

出力:

"関数find(){[ネイティブコード]}"

私は自分のアプリケーションに入れたい:

Array.prototype.find = "native code here"; 

Internet Explorerではサポートされていない機能を使用できます。何か案は?

+0

できません。そのコードはブラウザによって異なります。代わりに、jQueryやModernizerなどのヘルパーやfallback/polyfillを提供する同様のライブラリを使用できます。 –

+1

このコンテキストでは、[native code]はブラウザのネイティブを意味します。おそらくC++でも構いませんが、おそらくECMAScriptではありません。 Array.prototype.find *(https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find#Polyfill)の[* polyfill]を探している場合は、 * MDN *](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find#Polyfill)を参照してください。 – RobG

答えて

1

[native code]はブラウザに保存されていますが、JavaScriptでもありません。 find()を呼び出すと、エンジンが制御されることがあります。

代わりに、あなたはGoogleでArray.find shimを検索する必要があります。 https://www.google.com/#newwindow=1&safe=off&q=Array.find+shim

+0

同じタスクを実行する独自のfind関数を書くことはできますか? – wayofthefuture

+1

[* MDN *](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find#Polyfill)を参照すると、そこにあるポリフェルはECMA-262アルゴリズムを厳密に実装しようとします彼らはPOJSを使用することができます。もちろん、私の場合は – RobG

+0

です。あなたのコードにバグがないと思うときだけです。 – XiaoChi

0

JS関数のソースコードがどこにあるのか分かりませんが、Modernizrを新しい機能に使うことができます(役立つスニペットがあります)。

関連する問題