なぜ b を関数として呼び出すことができないのでしょうか?
滿天的星座2017-06-28 09:31:13
Number.prototype.toString 標準
もし彼のtoString 関数はジェネリックではないため、この値が Number または Number オブジェクトでない場合は TypeError 例外をスローします。そのため、メソッドとして使用するために他の種類のオブジェクトに転送することはできません。
以下を翻訳してください:
直接電話
this
值不是数字类型或者Number
对象,将会抛出一TypeError
これを使用できます:this
是window
リーリー
过去多啦不再A梦2017-06-28 09:31:13
できますb.call(num)
,一般来说toString
不允许作为普通函数执行很容易接受,就跟构造函数一般不作为普通函数执行一样。
ps:例子中的Number.prototype.toString()
实际上作用域也是Number.prototype
追加すると、答えは少し話が逸れます。b() は実際には関数として呼び出され、呼び出しは toString() 自体によってスローされます。
迷茫2017-06-28 09:31:13
Number.prototype.toString
関数として呼び出すことができますが、これは Number 型である必要があります。他のタイプの toString にも同じことが当てはまります。
toString 関数はジェネリックではないため、この値が Number または Number オブジェクトでない場合は TypeError 例外をスローします。そのため、メソッドとして使用するために他の種類のオブジェクトに転送することはできません。
15.7.4.2 Number.prototype.toString