Rumah hujung hadapan web tutorial js 详解new function(){}和function(){}() 区别分析_js面向对象

详解new function(){}和function(){}() 区别分析_js面向对象

May 16, 2016 pm 07:05 PM
new Analisis perbezaan

情景一:
var yx01 = new function() {return "圆心"};
alert(yx01);
我们运行情景一代码,将返回显示“[object object] ”,此时该代码等价于:

function 匿名类(){
    return "圆心";
}
var yx01 = new 匿名类();
alert(yx01);我们对情景一的代码进行下面改造:

var yx01 = new function() {return new String("圆心")};
alert(yx01);
我们运行,将会发现返回的是“圆心”,这是为什么呢?

只要 new 表达式之后的 constructor 返回(return)一个引用对象(数组,对象,函数等),都将覆盖new创建的匿名对象,如果返回(return)一个原始类型(无 return 时其实为 return 原始类型 undefined),那么就返回 new 创建的匿名对象
由于 new String 会构造一个对象,而不是一个 string 直接量,且new String(x) 如果带参数,那么alert它的时候就会返回 x。所以 yx01 将返回 new String(”圆心”) 这个对象,而 alert yx01 则显示 “圆心”。

情景二:

var yx02 = function() {return "圆心"}();
alert(yx02);我们运行情景二代码,将返回显示“圆心”,此时该代码等价于:

var 匿名函数 = function() {return "圆心"};
yx02 = 匿名函数();
alert(yx02);很明显,yx02 返回的是匿名函数的执行结果值,即 yx02 为:“圆心”。

当然匿名函数的执行结果也可以为一个匿名对象。具体常见应用可以看《Javascript的一种模块模式

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Analisis mendalam tentang perbezaan antara fungsi lenb dan fungsi len Analisis mendalam tentang perbezaan antara fungsi lenb dan fungsi len Jan 28, 2024 am 10:02 AM

Untuk menganalisis secara mendalam perbezaan antara fungsi lenb dan fungsi len, contoh kod khusus diperlukan Dalam bahasa pengaturcaraan Python, rentetan ialah jenis data biasa, dan operasi dan pemprosesan berkaitan rentetan sering diperlukan. Dalam proses pemprosesan rentetan, kita sering menggunakan fungsi mendapatkan panjang rentetan. Python menyediakan dua fungsi terbina dalam untuk mendapatkan panjang rentetan, iaitu fungsi lenb dan fungsi len. Walaupun nama fungsi mereka sangat serupa, mereka sebenarnya mempunyai perbezaan penting dalam cara mereka mengendalikan panjang rentetan.

Apakah perbezaan antara buat dan baharu dalam bahasa go Apakah perbezaan antara buat dan baharu dalam bahasa go Jan 09, 2023 am 11:44 AM

Perbezaan: 1. Make hanya boleh digunakan untuk memperuntukkan dan memulakan data jenis slice, map dan chan manakala baru boleh memperuntukkan sebarang jenis data. 2. Peruntukan baru mengembalikan penunjuk, iaitu jenis "*Jenis" manakala membuat pulangan rujukan, iaitu Jenis. 3. Ruang yang diperuntukkan oleh baru akan dikosongkan selepas membuat memperuntukkan ruang, ia akan dimulakan.

Bagaimana untuk menggunakan kata kunci baharu dalam java Bagaimana untuk menggunakan kata kunci baharu dalam java May 03, 2023 pm 10:16 PM

1. Konsep Dalam bahasa Java, ungkapan "baru" bertanggungjawab untuk mencipta contoh, di mana pembina dipanggil untuk memulakan contoh; jenis nilai pulangan pembina itu sendiri adalah tidak sah, bukan "pembina mengembalikan yang baru dibuat Rujukan objek", tetapi nilai ungkapan baharu ialah rujukan kepada objek yang baru dibuat. 2. Tujuan: Mencipta objek kelas baharu 3. Mekanisme kerja: Peruntukkan ruang memori untuk ahli objek, dan nyatakan nilai lalai secara eksplisit, lakukan pengiraan kaedah pembinaan, dan kembalikan nilai rujukan dengan kerap bermakna membuka yang baru dalam ingatan Ruang memori diperuntukkan dalam kawasan timbunan dalam ingatan Ia dikawal oleh jvm dan menguruskan memori secara automatik. Di sini kita menggunakan kelas String sebagai contoh. Pu

Perbandingan dan perbezaan antara bahasa C dan bahasa pengaturcaraan lain Perbandingan dan perbezaan antara bahasa C dan bahasa pengaturcaraan lain Mar 21, 2024 pm 09:27 PM

Bahasa C ialah bahasa pengaturcaraan umum yang digunakan secara meluas dalam pembangunan perisian sistem, sistem terbenam, pembangunan permainan dan bidang lain. Sebagai perbandingan, bahasa pengaturcaraan lain seperti Python, Java, JavaScript, dan lain-lain juga mempunyai kelebihan tersendiri dalam bidang yang berbeza. Artikel ini akan membandingkan dan membezakan antara bahasa C dan bahasa pengaturcaraan lain, dan memberikan contoh kod khusus untuk digambarkan. Pertama sekali, bahasa C ialah bahasa pengaturcaraan prosedur yang memfokuskan pada kawalan dan pengoptimuman komputer asas. Sebaliknya, Python adalah berorientasikan objek

Bagaimanakah pengendali baharu berfungsi dalam js? Bagaimanakah pengendali baharu berfungsi dalam js? Feb 19, 2024 am 11:17 AM

Bagaimanakah operator baharu dalam js berfungsi? Contoh kod khusus diperlukan. Fungsinya adalah untuk mencipta objek contoh baharu berdasarkan pembina yang ditentukan dan mengembalikan rujukan kepada objek. Apabila menggunakan operator baharu, langkah berikut sebenarnya dilakukan: buat objek kosong baharu arahkan prototaip objek kosong ke objek prototaip pembina; objek); jalankan kod dalam pembina dan berikan objek baharu

Kamera GFX kanta tetap Fujifilm baharu untuk memperkenalkan sensor format sederhana baharu, boleh memulakan siri serba baharu Kamera GFX kanta tetap Fujifilm baharu untuk memperkenalkan sensor format sederhana baharu, boleh memulakan siri serba baharu Sep 27, 2024 am 06:03 AM

Fujifilm telah melihat banyak kejayaan dalam beberapa tahun kebelakangan ini, sebahagian besarnya disebabkan oleh simulasi filemnya dan populariti kamera gaya jarak jari padatnya di media sosial. Walau bagaimanapun, ia nampaknya tidak berpuas hati dengan kejayaannya, menurut Fujirumors. u

Bagaimana untuk menggunakan kaedah clone() dalam Java dan bukannya kata kunci baharu? Bagaimana untuk menggunakan kaedah clone() dalam Java dan bukannya kata kunci baharu? Apr 22, 2023 pm 07:55 PM

Menggunakan clone() dan bukannya new Cara paling biasa untuk mencipta contoh objek baharu dalam Java ialah menggunakan kata kunci baharu. Sokongan JDK untuk baharu sangat baik Apabila menggunakan kata kunci baharu untuk mencipta objek ringan, ia sangat pantas. Walau bagaimanapun, untuk objek berat, masa pelaksanaan pembina mungkin lebih lama kerana objek mungkin melakukan beberapa operasi yang kompleks dan memakan masa dalam pembina. Akibatnya, sistem tidak dapat memperoleh sejumlah besar kejadian dalam jangka pendek. Untuk menyelesaikan masalah ini, anda boleh menggunakan kaedah Object.clone(). Kaedah Object.clone() boleh memintas pembina dan menyalin contoh objek dengan cepat. Walau bagaimanapun, secara lalai, contoh yang dijana oleh kaedah klon() hanyalah salinan cetek objek asal.

See all articles