recherche

Maison  >  Questions et réponses  >  le corps du texte

La déstructuration numérique es6 Number.prototype.toString n'est pas générique - La déstructuration numérique es6 Number.prototype.toString n'est pas générique

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script>
({toString:b} = 123);
console.log(b === Number.prototype.toString); // true
console.log(Number.prototype.toString()); // 0
console.log(b()); //  Number.prototype.toString is not generic

let num = 456;
console.log(num.b()); // num.b is not a function
    </script>
</body>
</html>

Pourquoi b ne peut-il pas être appelé en tant que fonction ?

扔个三星炸死你扔个三星炸死你2818 Il y a quelques jours905

répondre à tous(3)je répondrai

  • 滿天的星座

    滿天的星座2017-06-28 09:31:13

    Numéro.prototype.toString standard

    La fonction toString n'est pas générique ; elle renvoie une exception TypeError si sa valeur n'est pas un objet Number ou Number. Par conséquent, elle ne peut pas être transférée vers d'autres types d'objets pour être utilisée comme méthode.

    Traduisez ce qui suit :

    Si son this值不是数字类型或者Number对象,将会抛出一TypeError

    Appelez directementthiswindow
    Vous pouvez utiliser ceci :

    b.call(1)
    b.call(Number('test'))

    répondre
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-28 09:31:13

    Vous pouvezb.call(num),一般来说toString不允许作为普通函数执行很容易接受,就跟构造函数一般不作为普通函数执行一样。
    ps:例子中的Number.prototype.toString()实际上作用域也是Number.prototype


    Pour ajouter, la réponse est un peu hors sujet. b() est en fait appelé en tant que fonction, et l'appel est réussi. L'erreur est renvoyée par toString() lui-même.

    répondre
    0
  • 迷茫

    迷茫2017-06-28 09:31:13

    Number.prototype.toString Peut être appelée en tant que fonction mais celle-ci doit être de type Number. La même chose s'applique aux autres types de toString.

    b.call(123)
    // "123"

    La fonction toString n'est pas générique ; elle renvoie une exception TypeError si sa valeur n'est pas un objet Number ou Number. Par conséquent, elle ne peut pas être transférée vers d'autres types d'objets pour être utilisée comme méthode.

    15.7.4.2 Number.prototype.toString

    répondre
    0
  • Annulerrépondre