第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何根據(jù)范圍/閉包更新結(jié)構(gòu)化的JavaScript變量?

如何根據(jù)范圍/閉包更新結(jié)構(gòu)化的JavaScript變量?

幕布斯6054654 2019-04-25 18:15:42
下面的代碼是一個(gè)destructured 計(jì)數(shù)變量和increaseCount更新程序函數(shù)。如何在執(zhí)行increaseCount函數(shù)時(shí)更新count變量的值?這甚至可能嗎?注意:我不希望count變量是全局變量。從下面的代碼我嘗試使用Closures來(lái)解決問(wèn)題。但即使在第二個(gè)console.log之后仍然顯示1。function getCount() {     let _count = 1;     const _updateCount = () => {         _count = _count + 1;     };     return [_count, _updateCount];}const [count, updateCount] = getCount();console.log(count); /*      <===== Expect initial count to be 1 */updateCount();console.log(count); /* <===== After calling updateCount I Expect count to be 2 */調(diào)用第一個(gè)console.log時(shí),我期望count為1。當(dāng)調(diào)用updateCount時(shí),我希望count變量更新為2。因此,當(dāng)調(diào)用第二個(gè)console.log時(shí),我希望顯示2。
查看完整描述

3 回答

?
慕娘9325324

TA貢獻(xiàn)1783條經(jīng)驗(yàn) 獲得超4個(gè)贊

鑒于您當(dāng)前的代碼,如果您希望能夠getCount多次調(diào)用它是不可能的- 您count在最高級(jí)別進(jìn)行了解構(gòu),一個(gè)原語(yǔ)。改變它的唯一方法是重新分配外部變量getCount,這是一個(gè)壞主意。


一個(gè)簡(jiǎn)單的解決方法是不將一個(gè)原語(yǔ)放在數(shù)組的第一個(gè)位置,而是使用一個(gè)返回內(nèi)部的函數(shù)_count:


function getCount() {

    let _count = 1;


    const _updateCount = () => {

        _count = _count + 1;

    };


    return [() => _count, _updateCount];



}


const [getInternalCount, updateCount] = getCount();



console.log(getInternalCount()); /* <===== Expect initial count to be 1 */


updateCount();


console.log(getInternalCount()); /* <===== After calling updateCount I Expect count to be 2 */


查看完整回答
反對(duì) 回復(fù) 2019-05-17
?
ibeautiful

TA貢獻(xiàn)1993條經(jīng)驗(yàn) 獲得超6個(gè)贊

您可以使用具有已實(shí)現(xiàn)toString方法的obect,并在原始期望環(huán)境中使用此變量來(lái)獲取計(jì)數(shù)。


function getCount() {

    let _count = 1;

    const _updateCount = () => {

        _count = _count + 1;

    };

    return [{ toString: () => _count }, _updateCount];

}


const [count, updateCount] = getCount();

console.log(count + '');

updateCount();

console.log(count + '');


查看完整回答
反對(duì) 回復(fù) 2019-05-17
?
HUWWW

TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊

范圍_count不同于count您嘗試的范圍console.log


要顯示_count您必須使用函數(shù)訪問(wèn)它的值,如下所示:


function getCount() {

  // This is visibile only to the function getCount

  let _count = 1;


  const _updateCount = () => {

    _count = _count + 1;

  };


  const _showCount = () => {

    console.log(_count);

  }


  return [_count, _updateCount, _showCount];

}


// Count here will be a different variable

const [count, updateCount, showCount] = getCount();



console.log(count); /* <===== Expect initial count to be 1 */


updateCount();

showCount(); // Will show ===> 2


updateCount();

showCount(); // Will show ===> 3


查看完整回答
反對(duì) 回復(fù) 2019-05-17
  • 3 回答
  • 0 關(guān)注
  • 449 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)