VUE組件中 data 里面的數據為什么要return 出來


VUE組件中 data 里面的數據為什么要return 出來

  請先看下面示例

      var obj={
        name:"zhangsan",
        age:20
      }
      var a=obj;
      var b=obj;
      a.age=18
      console.log(a,b)   // {name: "zhangsan", age: 18} {name: "zhangsan", age: 18}

 

      這是為什么呢 因為JS中Object是引用數據類型,我定義變量a和b等於obj對象時只是進行了對象的淺拷貝,a和b的值其實只是一個指向obj對象的地址(也就是棧),
在我修改a.age時,JS 會通過變量a這個路徑 去找到obj對象的堆空間里面的值,進行修改。。。在我輸出 a,b時,都是通過棧空間里面的這條路徑,去找到堆空間里面的值,輸出!

  再看return示例
     var data=function(){
        return{
          name:"zhangsan",
          age:20
        }
      }
      var a=data();
      var b=data();
      a.age=18
      console.log(a,b)   //{name: "zhangsan", age: 18} {name: "zhangsan", age: 20}

    這又是為什么呢?因為在JS 中只有函數才存在作用域,data是一個函數時,每個組件實例都有自己的作用域,每個實例相互獨立,不會相互影響!!

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM