왜 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
함수로 호출할 수 있지만 숫자 유형이어야 합니다. 다른 유형의 toString에도 동일하게 적용됩니다.
toString 함수는 일반 함수가 아닙니다. 이 값이 Number 또는 Number 개체가 아닌 경우 TypeError 예외가 발생합니다. 따라서 메서드로 사용하기 위해 다른 종류의 개체로 전송할 수 없습니다.
15.7.4.2 Number.prototype.toString