vuejs data里面的变量不能作为参数传递给函数吗?

我有一个通用的函数func, 用来改变data里面的变量的值, 但是data里面的变量无法当作参数传递给函数吗?

<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)
    }    
    // 通用函数
    func (card) {
        card = '***'
    }
}</script>


慕妹3146593
浏览 4775回答 2
2回答

繁花不似锦

可以的,但是原始类型的数据只是值传递,你在func里面改变card,只是改变形参card,并不是改变组件变量,可以做如下修改func&nbsp;(str)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;this[str]&nbsp;=&nbsp;'***'} this.func('card1')

慕莱坞森

func&nbsp;(card)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;card&nbsp;=&nbsp;'***'}这里的&nbsp;card = '***'&nbsp;只是让&nbsp;card&nbsp;变量的值改变,并不会让&nbsp;this.func(this.card1)&nbsp;中的参数的值发生改变。除了下面这种情况:func&nbsp;(card)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;card.someField&nbsp;=&nbsp;'***'&nbsp;//&nbsp;这会在&nbsp;this.func(this.card1)&nbsp;时使得&nbsp;card1.someFiled&nbsp;的值被改变}具体区别请查阅 "值、引用" 相关文章。
打开App,查看更多内容
随时随地看视频慕课网APP