2017-10-20 5 views
0

たとえば、標準DateまたはMathオブジェクトを自分のものに置き換えたいとします。JavaScript:標準のビルトインオブジェクトをオーバーライドすることはできますか?

instanceofまたはのような微妙な問題が発生することはわかっていますが、置き換えられたすべての既知の一般的な動作が真似されているとしましょう。規格はそのような行動を許可していますか?

+0

は 'スタンダールは、そのような行為を許可していますか?'はい。 – gurvinder372

+0

推奨されていませんが、可能です。 –

+0

"主に意見に基づく"と結論づけている人には決定的な答えがある質問です。なぜPOBとして投票を終了することに投票していますか? –

答えて

2

標準ではこのような動作が許可されていますか?

はい。コンソール、日付などのネイティブオブジェクトのメソッドをオーバーライドすることはできますが、Mathのようなプロトタイプを持っていない人はunpreventableではありません。例えば

Date.prototype.getDate = function(){ return 5 }; //overriding getDate method 

new Date().getDate() //returns 5 
+0

私はネイティブオブジェクトを変更できることを理解していますが、これを行うことができます: 'window.Date = MyDate' –

+0

グローバルスコープのものはすべて変更できます。 – gurvinder372