cari

Rumah  >  Soal Jawab  >  teks badan

pemusnahan berangka es6 Number.prototype.toString bukan generik - pemusnahan berangka es6 Number.prototype.toString bukan generik

<!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>

Mengapa b tidak boleh dipanggil sebagai fungsi?

扔个三星炸死你扔个三星炸死你2818 hari yang lalu906

membalas semua(3)saya akan balas

  • 滿天的星座

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

    Number.prototype.toString standard

    Fungsi toString bukan generik; ia mengeluarkan pengecualian TypeError jika nilai ini bukan objek Nombor atau Nombor Oleh itu, ia tidak boleh dipindahkan ke objek lain untuk digunakan sebagai kaedah.

    Terjemah yang berikut:

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

    Hubungi terusthiswindow
    Anda boleh menggunakan ini:

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

    balas
    0
  • 过去多啦不再A梦

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

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


    Untuk menambah, jawapannya agak keluar dari topik b() sebenarnya dipanggil sebagai fungsi, dan panggilan itu berjaya dilemparkan oleh toString() itu sendiri.

    balas
    0
  • 迷茫

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

    Number.prototype.toString Boleh dipanggil sebagai fungsi tetapi ini mestilah jenis Nombor. Perkara yang sama berlaku untuk jenis toString yang lain.

    b.call(123)
    // "123"

    Fungsi toString bukan generik; ia mengeluarkan pengecualian TypeError jika nilai ini bukan objek Nombor atau Nombor Oleh itu, ia tidak boleh dipindahkan ke objek lain untuk digunakan sebagai kaedah.

    15.7.4.2 Number.prototype.toString

    balas
    0
  • Batalbalas