国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

關(guān)于JavaScript 函數(shù)傳參

CloudwiseAPM / 2993人閱讀

摘要:最早由在年的語言中提出。該求值策略被用于等多種語言。該策略的重點是調(diào)用函數(shù)傳參時,函數(shù)接受對象實參引用的副本既不是按值傳遞的對象副本,也不是按引用傳遞的隱式引用。它和按引用傳遞的不同在于在共享傳遞中對函數(shù)形參的賦值,不會影響實參的值。

周五晚上下班回家的路上,突然想到了 CommonJS 規(guī)范、Node.js 模塊化等等各種東西,然后就想到了熟悉的 module.exports。

大約很久之前看 seajs 的文檔,文檔強調(diào),exports = {/**/} 這種寫法是錯誤的!當(dāng)時還是小白中的小白,只能一臉懵逼,為嘛不能啊?完全無法理解。

請看截圖:

有沒有看到最后的提示?可惜那時候的小白文藺完全不知道這是什么鬼——更可能的是那會兒就沒關(guān)注到這一塊兒,畢竟新人,心浮氣躁,就想五分鐘學(xué)會 seajs 模塊化開發(fā)。

后來摸爬滾打,js 知識相對扎實之后(鳴謝厚厚的紅寶書《 JavaScript 高級程序設(shè)計》,前后讀了三遍),我還是好歹懂了,但未能舉一反三。

昨天晚上,再次冒出這個問題,還是了然的。

子曰: 學(xué)而不思則罔,思而不學(xué)則殆。

很顯然,exportsdefine(function(require, exports) {})中就是個局部變量,它對應(yīng)的值是個對象,是 module.exports 的一個引用。

然后呢,一句exports = {/**/}就把這個局部變量指向另外一個值了。這是局部變量啊喂。卒。

很多新人看了一些博客或者書之后,腦子里也打結(jié)了,求值策略按值傳遞,按引用傳遞,這些似是而非的概念最后都把人給整糊涂了。

剛剛刷SF,讀到一篇文章,《JS中的值是按值傳遞,還是按引用傳遞呢?》,和我思考的有點類似。

然后搜索了下 “求值策略”,找到湯姆大叔的一篇文章,上文與大叔的這篇文章還挺類似的,但大叔的可能顯得更深入一點。

下面是引用:

準(zhǔn)確的說,JS中的基本類型按值傳遞,對象類型按共享傳遞的(call by sharing,也叫按對象傳遞、按對象共享傳遞)。最早由Barbara Liskov. 在1974年的GLU語言中提出。該求值策略被用于Python、Java、Ruby、JS等多種語言。

該策略的重點是:調(diào)用函數(shù)傳參時,函數(shù)接受對象實參引用的副本(既不是按值傳遞的對象副本,也不是按引用傳遞的隱式引用)。 它和按引用傳遞的不同在于:在共享傳遞中對函數(shù)形參的賦值,不會影響實參的值。

從科學(xué)的角度來說,對于概念什么的,可能還是挺有必要的。從實用角度來說,只要能正確理解,可能用自己的一套語言來描述也是可以的。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/79780.html

相關(guān)文章

  • 一個關(guān)于對象引用的bug引發(fā)的對于引用類型及數(shù)組的簡單思考

    摘要:圖示如下而對于引用類型的復(fù)制可不是這樣這個復(fù)制只是將的引用賦值給,二者是屬于同一個引用,訪問的都是堆內(nèi)存中的同一個對象,任何一個該引用的變量發(fā)生變化,會對其余使用該引用的變量也發(fā)生變化。 這兩天自己在寫代碼的時候,出現(xiàn)一個BUG,代碼如下: class Car { constructor(carId) { this.position =...

    lijinke666 評論0 收藏0
  • 徹底理解JavaScript中回調(diào)函數(shù) (推薦)

    摘要:在中回調(diào)函數(shù)非常重要,它們幾乎無處不在。首先你得先明白一點函數(shù)也是對象想弄明白回調(diào)函數(shù),首先的清楚地明白函數(shù)的規(guī)則。理解了函數(shù)也是對象,先不急聊回調(diào)函數(shù),先看看下面代碼只寫變量名返回的將會是方法本身,以字符串的形式表現(xiàn)出來。 在javascript中回調(diào)函數(shù)非常重要,它們幾乎無處不在。像其他更加傳統(tǒng)的編程語言都有回調(diào)函數(shù)概念,但是非常奇怪的是,完完整整談?wù)摶卣{(diào)函數(shù)的在線教程比較少,倒是...

    RayKr 評論0 收藏0
  • 翻譯連載 |《你不知道的JS》姊妹篇 |《JavaScript 輕量級函數(shù)式編程》- 引言&前言

    摘要:我稱之為輕量級函數(shù)式編程。序眾所周知,我是一個函數(shù)式編程迷。函數(shù)式編程有很多種定義。本書是你開啟函數(shù)式編程旅途的絕佳起點。事實上,已經(jīng)有很多從頭到尾正確的方式介紹函數(shù)式編程的書了。 原文地址:Functional-Light-JS 原文作者:Kyle Simpson?。 禮ou-Dont-Know-JS》作者 譯者團(tuán)隊(排名不分先后):阿希、blueken、brucecham、...

    2bdenny 評論0 收藏0
  • JavaScript深入之bind的模擬實現(xiàn)

    摘要:也就是說當(dāng)返回的函數(shù)作為構(gòu)造函數(shù)的時候,時指定的值會失效,但傳入的參數(shù)依然生效。構(gòu)造函數(shù)效果的優(yōu)化實現(xiàn)但是在這個寫法中,我們直接將,我們直接修改的時候,也會直接修改函數(shù)的。 JavaScript深入系列第十一篇,通過bind函數(shù)的模擬實現(xiàn),帶大家真正了解bind的特性 bind 一句話介紹 bind: bind() 方法會創(chuàng)建一個新函數(shù)。當(dāng)這個新函數(shù)被調(diào)用時,bind() 的第一個參數(shù)...

    FingerLiu 評論0 收藏0
  • Date日期轉(zhuǎn)換

    摘要:傳入的格式要求詳見日期格式打印結(jié)果作為構(gòu)造函數(shù)作為構(gòu)造函數(shù)可以通過指針實例化一個的實例對象,這個對象是一個日期對象。所有實例的屬性和方法即是繼承于構(gòu)造函數(shù)原型上的屬性和方法。 前言 之前寫博客都是在github的搭建的個人博客上,最近開始遷移博客上的內(nèi)容到segmentfalut。一方面是想重新整理下寫過的博客。另一方面也是想與大家多多交流,找到現(xiàn)階段自己的不足。第一篇文章是關(guān)于Dat...

    djfml 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<