1. 程式人生 > 其它 >vue中data需要用方法的方式返回的理解

vue中data需要用方法的方式返回的理解

據目前個人知識的理解,為什麼vue中data需要用函式的方式返回的原因,是需要從原型繼承入手。
對於物件中的繼承;

   function Person(){
        this.age = '100'
        this.data = {
            name:'小紅'
        }
    }
    function Per(){}
    Per.prototype = new Person()
    let per = new Per()
    let per1 = new Per()
    // 原型鏈繼承
    // 如果本身在例項化屬性存在,就會取例項屬性;如果取不到就從圓型屬性上找
    // 所以這個也是在vue當中,data中的屬性 必須要用函式返回的方式處理的原因
    
    per1.age = 1000
    per1.data.name = '小青'
    // 此時列印 per.data.name 會發現值為 小青;
    // 但是如果列印per.data.age的話 會發現還是 100 。這個是因為在物件中的屬性會被 繼承 ,是因為物件 是引用型別,而字串和數字是基礎型別

假如 vue中如果不是通過函式的方式返回,就會出現,同一個元件的兩個例項化元件中,一個data中的值發生改變的時候,另一個也會改變。