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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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

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

幕布斯6054654 2019-04-25 18:15:42
下面的代碼是一個destructured 計數(shù)變量和increaseCount更新程序函數(shù)。如何在執(zhí)行increaseCount函數(shù)時更新count變量的值?這甚至可能嗎?注意:我不希望count變量是全局變量。從下面的代碼我嘗試使用Closures來解決問題。但即使在第二個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)用第一個console.log時,我期望count為1。當(dāng)調(diào)用updateCount時,我希望count變量更新為2。因此,當(dāng)調(diào)用第二個console.log時,我希望顯示2。
查看完整描述

3 回答

?
慕娘9325324

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

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


一個簡單的解決方法是不將一個原語放在數(shù)組的第一個位置,而是使用一個返回內(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 */


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

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

您可以使用具有已實現(xiàn)toString方法的obect,并在原始期望環(huán)境中使用此變量來獲取計數(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 + '');


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

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

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


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


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


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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