鍍金池/ 問(wèn)答/HTML/ vuejs data里面的變量不能作為參數(shù)傳遞給函數(shù)嗎?

vuejs data里面的變量不能作為參數(shù)傳遞給函數(shù)嗎?

我有一個(gè)通用的函數(shù)func, 用來(lái)改變data里面的變量的值, 但是data里面的變量無(wú)法當(dāng)作參數(shù)傳遞給函數(shù)嗎?

<template>
    <div>
        <button @click="click1">btn1</button>
        <button @click="click2">btn2</button>
    </div>

</template>

<script>
import card1 from ***
import card2 from ***

data () {
    return {
        card1,
        card2
    }  
},

method: {
    
    click1 () {
        this.func(this.card1)
    }
    
    click2 () {
        this.func(this.card2)
    }
    
    // 通用函數(shù)
    func (card) {
        card = '***'
    }
}
</script>
回答
編輯回答
萌小萌

可以的,但是原始類型的數(shù)據(jù)只是值傳遞,你在func里面改變card,只是改變形參card,并不是改變組件變量,可以做如下修改

func (str) {
    this[str] = '***'
}

this.func('card1')
2017年8月6日 21:16
編輯回答
青瓷
func (card) {
    card = '***'
}

這里的 card = '***' 只是讓 card 變量的值改變,并不會(huì)讓 this.func(this.card1) 中的參數(shù)的值發(fā)生改變。

除了下面這種情況:

func (card) {
    card.someField = '***' // 這會(huì)在 this.func(this.card1) 時(shí)使得 card1.someFiled 的值被改變
}

具體區(qū)別請(qǐng)查閱 "值、引用" 相關(guān)文章。

2017年2月19日 04:17