JavaScript中判断函数是new还是()调用的区别说明_javascript技巧
方式1
function Person(n,a){
this.name = n;
this.age = a;
if(this instanceof Person){
alert('new调用');
}else{
alert('函数调用');
}
}
var p = new Person('jack',30); // --> new调用
Person(); // --> 函数调用
方式2
function Person(n,a){
this.name = n;
this.age = a;
if(this instanceof arguments.callee){
alert('new调用');
}else{
alert('函数调用');
}
}
var p = new Person('jack',30); // --> new调用
Person(); // --> 函数调用
方式3
function Person(n,a){
this.name = n;
this.age = a;
if(this.constructor === arguments.callee){
alert('new调用');
}else{
alert('函数调用');
}
}
var p = new Person('jack',30); // --> new调用
Person(); // --> 函数调用
看似很完美,但当把函数/类作为自身实例对象的方法时调用就出问题了
function Person(n,a){
this.name = n;
this.age = a;
if(this.constructor === arguments.callee){
alert('new调用');
}else{
alert('函数调用');
}
}
var p = new Person('jack',30); // 先new一个对象
p.fn = Person; // 把函数/类 Person 赋值给自身对象p的fn属性
p.fn(); // 这句调用时提示“这是new调用”,显然不对
还有更好的方法吗?

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



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.

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


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

Jadual Excel wujud dalam semua bidang kehidupan Sama ada anda seorang pekerja di tempat kerja, seorang guru, atau pun kakitangan agensi negeri, anda mesti kerap menggunakan alat Excel Menguasai kemahiran operasi Excel boleh menambah kilauan pada kerja anda dan membantu anda apabila perlu naik pangkat. Editor artikel ini kebanyakannya berkongsi dengan anda fungsi penghakiman Excel yang biasa digunakan. 1. Fungsi penghakiman excel yang biasa digunakan 1. Fungsi IF: mengembalikan nilai berbeza mengikut sintaks bersyarat =IF (penghakiman bersyarat, hasilnya ialah nilai pulangan benar, hasilnya adalah nilai pulangan palsu) 2. ATAU fungsi: melaksanakan pelbagai syarat logik Penghakiman;

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

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.

1. Konsepnya ialah "buat objek Java" ----- peruntukkan memori dan kembalikan rujukan kepada memori tersebut. 2. Nota (1) Kata kunci Java baru ialah operator. Ia mempunyai keutamaan yang sama atau serupa seperti +, -, *, / dan pengendali lain. (2) Mencipta objek Java memerlukan tiga langkah: mengisytiharkan pembolehubah rujukan, membuat instantiate, dan memulakan contoh objek. (3) Sebelum instantiasi, pembina tanpa parameter kelas induk akan dipanggil secara lalai, iaitu objek kelas induk mesti dicipta 3. Dua kaedah instantiasi (1) Nama objek = nama kelas baru (parameter 1,. parameter 2... Parameter n nama objek (); (2) nama kelas baru (parameter 2... parameter n). objek sebenar
