Rumah  >  Artikel  >  hujung hadapan web  >  Apakah objek terbina dalam dalam ecmascript?

Apakah objek terbina dalam dalam ecmascript?

青灯夜游
青灯夜游asal
2021-12-06 15:23:391669semak imbas

Objek terbina dalam dalam ecmascript termasuk: objek global, Objek objek, Objek fungsi, objek tatasusunan, objek rentetan, objek Boolean, objek nombor, objek Matematik, objek Tarikh, objek RegExp, objek JSON dan Ralat objek.

Apakah objek terbina dalam dalam ecmascript?

Persekitaran pengendalian tutorial ini: sistem Windows 7, ECMAScript versi 6, komputer Dell G3.

ECMAScript mentakrifkan satu set objek terbina dalam yang menggariskan takrif entiti ECMAScript.

Objek terbina dalam ini termasuk:

Objek global, Objek objek, Objek fungsi, Objek tatasusunan, Objek rentetan, objek Boolean, Objek nombor, objek Matematik, Objek tarikh, objek RegExp , JSON objek dan objek Ralat: Ralat , EvalError , RangeError , ReferenceError , SyntaxError , TypeError , URIError .

Objek Global

Satu-satunya objek global dicipta sebelum kawalan memasuki mana-mana persekitaran pelaksanaan.

Melainkan dinyatakan sebaliknya, sifat terbina dalam standard objek global mempunyai sifat {[[Boleh Ditulis]]: benar, [[Boleh Dikira]]: palsu, [[Boleh Dikonfigurasikan]]: benar}.

Objek global tidak mempunyai sifat dalaman [[Construct]] objek global tidak boleh dipanggil sebagai pembina menggunakan operator baharu.

Objek global tidak mempunyai sifat dalaman [[Panggil]] dan objek global tidak boleh dipanggil sebagai fungsi.

Nilai harta dalaman [[Prototaip]] dan [[Kelas]] objek global bergantung pada pelaksanaan.

Selain sifat yang ditakrifkan oleh spesifikasi ini, objek global boleh mempunyai sifat yang ditentukan hos tambahan. Objek global boleh mengandungi sifat yang nilainya ialah objek global itu sendiri, contohnya, dalam Model Objek Dokumen HTML, sifat tetingkap objek global ialah objek global itu sendiri.

Objek objek

Panggil pembina Objek sebagai fungsi

Anggap Objek sebagai fungsi untuk memanggil bukannya pembina, ia melakukan penukaran jenis.

Object ( [ value ] )

Apabila memanggil fungsi Objek dengan nilai parameter atau tiada parameter, gunakan langkah berikut:

  • Jika nilai nol, tidak ditentukan atau tidak ditentukan, buat dan Mengembalikan objek Objek baharu, yang sama dengan hasil panggilan pembina Objek terbina dalam standard (15.2.2.1) dengan parameter yang sama.

  • Return ToObject(value).

Pembina objek

Apabila Objek adalah sebahagian daripada panggilan ungkapan baharu, ia adalah pembina yang mencipta objek.

Objek baharu ( [ nilai ] )

Apabila memanggil pembina Objek dengan nilai parameter atau tiada parameter, gunakan langkah berikut:

  • Jika nilai diberikan, maka jika Jenis(nilai) ialah Objek, maka jika nilai ialah objek ECMAScript asli, tiada objek baharu dicipta dan nilai hanya dikembalikan Jika nilai ialah objek hos, tindakan akan diambil dan bergantung kepada pelaksanaan Kaedah hasil boleh bergantung pada objek hos Jika Jenis(nilai) ialah String, kembalikan ToObject(nilai) Jika Jenis(nilai) ialah Boolean, kembalikan ToObject(nilai). Nombor, kembalikan ToObject( nilai).

  • Penegasan: Nilai parameter tidak diberikan atau jenisnya adalah Null atau Undefined.

  • Biar obj menjadi Objek ECMAScript asli yang baru dicipta.

  • Tetapkan sifat dalaman [[Prototaip]] obj kepada objek prototaip Objek terbina dalam standard (15.2.4).

  • Tetapkan sifat dalaman [[Kelas]] obj kepada "Objek".

  • Tetapkan sifat dalaman [[Extensible]] bagi obj kepada benar.

  • Tetapkan semua kaedah dalaman yang dinyatakan dalam obj 8.12

  • Kembalikan obj.

Objek fungsi

Pembina Fungsi Panggilan sebagai fungsi

Apabila Fungsi dipanggil sebagai fungsi, bukannya sebagai pembina, ia mencipta dan memulakan objek fungsi Baharu. Jadi panggilan fungsi Function(…) mencipta objek yang sama dengan ungkapan Function(…) baharu dengan parameter yang sama.

Function (p1, p2, … , pn, body)

Apabila memanggil fungsi Fungsi dengan p1, p2, …, pn, badan sebagai parameter (n di sini boleh menjadi 0, yang bermaksud tiada parameter "p", dan badan tidak perlu disediakan pada masa ini), ambil langkah berikut:

  • Buat dan kembalikan objek fungsi baharu seolah-olah ia diberikan kepada Fungsi pembina terbina dalam standard (15.3.2.1) dengan parameter yang sama Dibuat dengan ungkapan baharu .

Pembina fungsi

Apabila Fungsi dipanggil sebagai sebahagian daripada ungkapan baharu, ia ialah pembina: ia memulakan objek yang baru dicipta.

new Function (p1, p2, … , pn, body)

Parameter terakhir ditentukan sebagai badan (kod boleh laku) fungsi;

Apabila memanggil pembina Fungsi dengan p1, p2, …, pn, badan sebagai parameter (n di sini boleh menjadi 0, yang bermaksud tiada parameter "p", dan badan tidak perlu disediakan pada ini masa), gunakan Ikut langkah di bawah:

  • 令 argCount 为传给这个函数调用的参数总数 .

  • 令 P 为空字符串 .

  • 如果 argCount = 0, 令 body 为空字符串 .

  • 否则如果 argCount = 1, 令 body 为那个参数 .

  • 否则 , argCount > 1令 firstArg 为第一个参数 .令 P 为 ToString(firstArg).令 k 为 2.只要 k 6c90cc38f36b104708bb7b8442e952f5。本规范里面的 JSON 交换格式会使用 RFC4627 里所描述的,以下两点除外:

    • ECMAScript JSON 文法中的顶级 JSONText 产生式是由 JSONValue 构成,而不是 RFC4627 中限制成的 JSONObject 或者 JSONArray。

    • 确认 JSON.parse 和 JSON.stringify 的实现,它们必须准确的支持本规范描述的交换格式,而不允许对格式进行删除或扩展。这一点要区别于 RFC4627,它允许 JSON 解析器接受 non-JSON 的格式和扩展。

     JSON 对象内部属性 [[Prototype]] 的值是标准内建的 Object 原型对象(15.2.4)。内部属性 [[Class]] 的值是“JSON”。内部属性 [[Extensible]] 的值设置为 true。

     JSON 对象没有内部属性 [[Construct]];不能把 JSON 对象当作构造器来使用 new 操作符。

     JSON 对象没有内部属性 [[Call]]; 不能把 JSON 对象当作函数来调用。

    Error 对象

    Error对象的实例在运行时遇到错误的情况下会被当做异常抛出。Error对象也可以作为用户自定义异常类的基对象。

    【相关推荐:javascript学习教程

Atas ialah kandungan terperinci Apakah objek terbina dalam dalam ecmascript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn