摘要:調(diào)用函數(shù)時(shí),傳遞給函數(shù)的值被稱為函數(shù)的實(shí)參值傳遞,對(duì)應(yīng)位置的函數(shù)參數(shù)名叫作形參。假如函數(shù)在內(nèi)部改變了對(duì)應(yīng)形參的值,返回后,實(shí)參指向的對(duì)象的值也會(huì)改變。
理解函數(shù)
文字居多,各位看官不要厭煩呀~~
在JavaScript中,每個(gè)函數(shù)其實(shí)都是一個(gè)Function對(duì)象。(不是有句話說:一切皆對(duì)象?)
函數(shù)總是會(huì)返回一個(gè)值,但是一個(gè)過程有可能返回一個(gè)值,也有可能不返回。(所以函數(shù)不是過程~)
如果一個(gè)函數(shù)中沒有使用return語(yǔ)句,則它默認(rèn)返回undefined。要想返回一個(gè)特定的值,則函數(shù)必須使用 return 語(yǔ)句來指定一個(gè)所要返回的值。(使用new關(guān)鍵字調(diào)用一個(gè)構(gòu)造函數(shù)除外)。
調(diào)用函數(shù)時(shí),傳遞給函數(shù)的值被稱為函數(shù)的實(shí)參(值傳遞),對(duì)應(yīng)位置的函數(shù)參數(shù)名叫作形參。
如果實(shí)參是一個(gè)包含原始值(數(shù)字,字符串,布爾值)的變量,則就算函數(shù)在內(nèi)部改變了對(duì)應(yīng)形參的值,返回后,該實(shí)參變量的值也不會(huì)改變。
如果實(shí)參是一個(gè)對(duì)象引用,則對(duì)應(yīng)形參會(huì)和該實(shí)參指向同一個(gè)對(duì)象。假如函數(shù)在內(nèi)部改變了對(duì)應(yīng)形參的值,返回后,實(shí)參指向的對(duì)象的值也會(huì)改變。
終于有代碼了,撒花~~
/* 定義函數(shù) myFunc */ function myFunc(theObject) { //實(shí)參 mycar 和形參 theObject 指向同一個(gè)對(duì)象. theObject.brand = "Toyota"; } /* * 定義變量 mycar; * 創(chuàng)建并初始化一個(gè)對(duì)象; * 將對(duì)象的引用賦值給變量 mycar */ var mycar = { brand: "Honda", model: "Accord", year: 1998 }; /* 彈出 "Honda" */ window.alert(mycar.brand); /* 將對(duì)象引用傳給函數(shù) */ myFunc(mycar); /* * 彈出 "Toyota",對(duì)象的屬性已被修改. */ console.log(mycar.brand);
(關(guān)于函數(shù)中的this,順便說點(diǎn))
在函數(shù)執(zhí)行時(shí),this 關(guān)鍵字并不會(huì)指向正在運(yùn)行的函數(shù)本身,而是指向調(diào)用該函數(shù)的對(duì)象。
所以,如果你想在函數(shù)內(nèi)部獲取函數(shù)自身的引用,只能使用函數(shù)名或者使用arguments.callee屬性
(嚴(yán)格模式下不可用),如果該函數(shù)是一個(gè)匿名函數(shù),則你只能使用后者。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/79335.html
摘要:深入之繼承的多種方式和優(yōu)缺點(diǎn)深入系列第十五篇,講解各種繼承方式和優(yōu)缺點(diǎn)。對(duì)于解釋型語(yǔ)言例如來說,通過詞法分析語(yǔ)法分析語(yǔ)法樹,就可以開始解釋執(zhí)行了。 JavaScript深入之繼承的多種方式和優(yōu)缺點(diǎn) JavaScript深入系列第十五篇,講解JavaScript各種繼承方式和優(yōu)缺點(diǎn)。 寫在前面 本文講解JavaScript各種繼承方式和優(yōu)缺點(diǎn)。 但是注意: 這篇文章更像是筆記,哎,再讓我...
摘要:理解的函數(shù)基礎(chǔ)要搞好深入淺出原型使用原型模型,雖然這經(jīng)常被當(dāng)作缺點(diǎn)提及,但是只要善于運(yùn)用,其實(shí)基于原型的繼承模型比傳統(tǒng)的類繼承還要強(qiáng)大。中文指南基本操作指南二繼續(xù)熟悉的幾對(duì)方法,包括,,。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。 怎樣使用 this 因?yàn)楸救藢儆趥吻岸?,因此文中只看懂?8 成左右,希望能夠給大家?guī)韼椭?...(據(jù)說是阿里的前端妹子寫的) this 的值到底...
摘要:使用上一篇文章的例子來說明下自由變量進(jìn)階期深入淺出圖解作用域鏈和閉包訪問外部的今天是今天是其中既不是參數(shù),也不是局部變量,所以是自由變量。 (關(guān)注福利,關(guān)注本公眾號(hào)回復(fù)[資料]領(lǐng)取優(yōu)質(zhì)前端視頻,包括Vue、React、Node源碼和實(shí)戰(zhàn)、面試指導(dǎo)) 本周正式開始前端進(jìn)階的第二期,本周的主題是作用域閉包,今天是第7天。 本計(jì)劃一共28期,每期重點(diǎn)攻克一個(gè)面試重難點(diǎn),如果你還不了解本進(jìn)階計(jì)...
摘要:要理解立即執(zhí)行函數(shù),需要先理解一些函數(shù)的基本概念。函數(shù)表達(dá)式使用關(guān)鍵字聲明一個(gè)函數(shù),但未給函數(shù)命名,最后將匿名函數(shù)賦予一個(gè)變量,叫函數(shù)表達(dá)式,這是最常見的函數(shù)表達(dá)式語(yǔ)法形式。 javascript和其他編程語(yǔ)言相比比較隨意,所以javascript代碼中充滿各種奇葩的寫法,有時(shí)霧里看花,當(dāng)然,能理解各型各色的寫法也是對(duì)javascript語(yǔ)言特性更進(jìn)一步的深入理解。 ( functio...
摘要:設(shè)計(jì)模式是以面向?qū)ο缶幊虨榛A(chǔ)的,的面向?qū)ο缶幊毯蛡鹘y(tǒng)的的面向?qū)ο缶幊逃行┎顒e,這讓我一開始接觸的時(shí)候感到十分痛苦,但是這只能靠自己慢慢積累慢慢思考。想繼續(xù)了解設(shè)計(jì)模式必須要先搞懂面向?qū)ο缶幊?,否則只會(huì)讓你自己更痛苦。 JavaScript 中的構(gòu)造函數(shù) 學(xué)習(xí)總結(jié)。知識(shí)只有分享才有存在的意義。 是時(shí)候替換你的 for 循環(huán)大法了~ 《小分享》JavaScript中數(shù)組的那些迭代方法~ ...
閱讀 1861·2021-10-19 13:30
閱讀 1417·2021-10-14 09:48
閱讀 1627·2021-09-22 15:17
閱讀 2076·2019-08-30 15:52
閱讀 3337·2019-08-30 11:23
閱讀 2036·2019-08-29 15:27
閱讀 967·2019-08-29 13:55
閱讀 810·2019-08-26 14:05