函数调用的不同方式及this的指向详解
一、函数的调用方式
1.作为函数,一种直接易懂的方式(即函数调用模式)。
2.作为方法,方法是连接在对象上的,被这个对象调用,这种形式就是面向对象编程。
3.作为构造器,在构造的过程中一个新的对象被创建出来。
4.经由函数的apply或者call方法。
本文主要为大家带来一篇浅谈函数调用的不同方式,以及this的指向。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。
二、函数参数
1.传入参数
(1)传入变量多于函数定义变量。
(2)函数定义变量多余传入变量,多出来的变量是undefined
2.函数在被调用的时候,隐形的传入两个参数argument和this(即argument和this被悄悄传入函数,作用在函数的作用域中)。
(1)argument:函数调用时传入函数的变量集合(有arguemnt.length属性)
eg:argument[0]指的是传入函数的第一个参数
(2)this关联一个对象。
根据调用方式的不同,this的指向也不同。因此this为调用的上下文(invocation context)。
三、this的指向
1.函数调用模式 (this->window)
这个函数并不属于任何对象的属性。
function fn1(){ //some code } fn1(); 或着: var fn2=function(){ //some code } fn2(); 使用这种方式调用函数,函数的上下文是全局上下文(global context即window)。this->window。
2.方法调用模式 (this->方法所属的对象)
这个函数是一个对象的属性,当这个函数被调用时,这个函数被视为这个对象的一个方法。
var obj={ //some code; }; obj.getname=function(){ //some name } obj.getname(); 函数的上下文是这个对象(例子中的 obj)。this->obj
3.构造器调用模式 (this->创建的新对象)
函数被作为构造器调用时有以下特点:
一个新的对象被创建出来;
这个新的对象被传递给这个构造器作为this参数,也就是说这个新的对象是构造器函数的上下文;
如果没有显性的return语句,这个新的对象会被隐式的return(就是悄咪咪的被return了),并成为这个构造器的值。
function Fn(){ this.a=function(){ return this; } } var n=new Fn(); console.log(n.a());//Fn{a:f} console.log(n);//fn{a:f} //此例中,构造了一个构造函数Fn((),利用new关键字调用时一个空的对象被创建出来,并传递到函数中作为this存在。this-Fn(新的) //这个构造器同时创建了a属性,并将此属性作为一个方法赋予给它创建出新对象的实例。
4.apply()获得call()方法 (this->可以是我们指定的任何对象)
(1)apply(),两个参数。第一个参数:用于作为函数上下文的对象。第二个参数:一个参数数组。
(2)call(),两个参数。第一个参数:用于作为函数上下文的对象。第二个参数:argument list。
call()和apply()多用于函数回调。
function circle(list,calback){ for(var i=0;i<list.length;i++){ calback.call(list[i],i); } } var list=['a','b','c']; circle(list,function(index){ console.log(index);//0,1,2(即传进来的i值) console.log(this);//a,b,c(call的第一个参数) }); //this->call()传递进来的第一个参数。
相关推荐:
Atas ialah kandungan terperinci 函数调用的不同方式及this的指向详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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



Bahasa pengaturcaraan digunakan untuk memberi arahan kepada komputer dalam bahasa yang mereka boleh fahami. Bahasa komputer terbahagi kepada tiga jenis seperti berikut: Bahasa Mesin Bahasa Simbolik Bahasa Aras Tinggi Bahasa Mesin Komputer ialah sebuah mesin. Memandangkan ingatannya hanya boleh menyimpan 1s dan 0s, arahan mesti diberikan kepada komputer dalam bentuk aliran 1s dan 0s, iaitu kod binari. Ini mudah difahami oleh mesin. Program yang ditulis dalam kod binari yang boleh dimasukkan terus ke dalam komputer untuk pelaksanaan dipanggil bahasa mesin. Kelebihan bahasa mesin termasuk: Pelaksanaan yang sangat pantas. Sukar untuk menulis dan membaca program dalam bahasa mesin. Arahan mesin sukar diingat. Bahasa simbolik juga dipanggil bahasa himpunan. Penghimpun mengandungi "mnemonik". "Mnemonik" ialah maklumat yang mudah diingati dalam bentuk singkatan. Kelebihan bahasa simbolik

Sebagai bahasa pengaturcaraan moden, bahasa Go memainkan peranan penting dalam pembangunan. Bahasa Go menyediakan beberapa fungsi dan struktur masa terbina dalam untuk menjadikan pemprosesan masa lebih mudah. Dalam artikel ini, kami akan memperkenalkan beberapa kaedah pemprosesan masa yang biasa digunakan dalam bahasa Go. time.Now() Kita boleh menggunakan fungsi time.Now() untuk mendapatkan masa semasa: now:=time.Now()fmt.Println(now) output: 2019-06-131

Chrome akan merekodkan URL yang telah dimasukkan secara automatik dalam bar alamat dan secara automatik akan "mengaitkan kandungan pertanyaan" pada masa hadapan, tetapi sering kali kita tidak memerlukan beberapa URL, bagaimana untuk memadamkannya? Editor sering menghadapi masalah ini Alamat yang telah dimasukkan sebelum ini akan disekat di hadapan alamat yang biasa digunakan, menyebabkan keperluan untuk memilih beberapa kali untuk memasuki laman web yang dikehendaki. Saya telah mencari cara untuk memadamnya sekurang-kurangnya tiga kali kerana... saya lupa setiap kali. Dalam pintasan bar alamat pintasan papan kekunci Chrome bantuan rasmi Chrome, kekunci pintasan padam dijelaskan: ▍Windows memadamkan kandungan perkaitan bar alamat Tekan kekunci anak panah ke bawah untuk menyerlahkan kandungan yang sepadan dan kemudian tekan kekunci Shift+Delete ▍macOS. memadamkan alamat Bar perkaitan kandungan klik ke bawah

Seorang rakan sekerja tersekat kerana pepijat yang ditunjukkan oleh masalah penunjuk Vue2 ini menyebabkan fungsi anak panah digunakan, mengakibatkan ketidakupayaan untuk mendapatkan prop yang sepadan. Dia tidak tahu apabila saya memperkenalkannya kepadanya, dan kemudian saya sengaja melihat kumpulan pertukaran bahagian hadapan Setakat ini, sekurang-kurangnya 70% pengaturcara bahagian hadapan masih tidak memahaminya anda pautan ini. Jika semuanya tidak jelas saya belum belajar bagaimana untuk melakukannya, sila berikan saya mulut yang besar.

Sistem win7 ialah sistem pengendalian tradisional Microsoft dan mempunyai banyak fungsi praktikal, seperti fungsi titik pemulihan sistem win7. Dengan menetapkan titik pemulihan dalam win7, anda boleh memulihkan sistem kepada titik pemulihan dalam win7 untuk mencapai tujuan pembaikan sistem. Bagaimana untuk menetapkan titik pemulihan dalam win? Editor berikut akan mengajar anda cara menetapkan titik pemulihan dalam win7. Bagaimana untuk menetapkan titik pemulihan dalam win7 1. Cari pintasan desktop, klik kanan dan pilih Properties. 2. Selepas memasukkan tetapan harta, pilih Konfigurasi Sistem Lanjutan. 3. Pilih pilihan penyelenggaraan sistem dalam kotak sifat sistem pop timbul. 4. Klik Sekarang untuk mencipta titik pemulihan bagi pengawal dengan perlindungan sistem dihidupkan. 5. Tambah perihalan titik pemulihan, kemudian klik Cipta, tunggu dengan sabar sebentar, titik pemulihan berjaya ditubuhkan, dan kemudian klik Tutup Anda boleh memulihkan sistem pada masa akan datang.

Perdebatan pautan lwn. import: Apakah perbezaannya? Dalam pembangunan dan pengaturcaraan, kita sering perlu berinteraksi dengan fail atau modul lain. Untuk mencapai interaksi ini, memaut dan mengimport adalah dua kaedah yang biasa digunakan. Walau bagaimanapun, ramai orang mungkin tidak tahu perbezaan antara pautan dan import dan masa untuk menggunakannya. Artikel ini akan memperkenalkan perbezaan antara pautan dan import secara terperinci dan memberikan contoh kod. Pertama, mari kita fahami konsep pautan. Pautan

Artikel ini akan membantu anda mentafsir kod sumber vue dan memperkenalkan sebab anda boleh menggunakan ini untuk mengakses sifat dalam pelbagai pilihan dalam Vue2. Saya harap ia akan membantu semua orang.

Kaedah input win10 telah mencapai kemajuan yang besar berbanding dengan versi sistem sebelumnya, dan mempunyai banyak fungsi yang sangat berguna Ia juga sangat lancar untuk digunakan secara keseluruhan dan mempunyai fungsi menaip memori Namun, sesetengah pengguna sudah mempunyai kaedah input mereka sendiri Untuk digunakan. Sekarang, jika anda ingin memadam kaedah input win10 terbina dalam, bagaimana anda memadam kaedah input win10 Hari ini saya akan memberitahu anda butiran tentang cara memadam kaedah input win10? Cara memadam kaedah input dalam win10 1. Tekan [Win+i] untuk membuka antara muka tetapan, dan klik pada pilihan "Masa dan Bahasa". 2. Klik "Wilayah dan Bahasa" dan klik butang "Pilihan" di bawah "Bahasa Cina" di sebelah kanan. 3. Klik pilihan "Microsoft Pinyin Alphabet" dan butang "Padam" akan muncul.
