鍍金池/ 問答/HTML/ 關(guān)于閉包與面向?qū)ο蟮膯栴}

關(guān)于閉包與面向?qū)ο蟮膯栴}

封裝了一個方法,用了兩種方式,效果是有了,就是不知道對不對,能不能這樣寫,本人新手,還很迷糊,還想問一下,這兩種可否在項目大量使用,利弊是什么

//方式一
export function getData(resId,project){
   this.paramObj = {
      resId:resId,
      requestData: {
        project: project,
      }
    };
}

//調(diào)用
 let Person=new way.getData(this.resId, this.$store.state.project)
 ll.initialize(Person.paramObj,this);

//方式二
export function format(resId,project){

  return function (){
    let paramObj = {
      resId: resId,
      requestData: {
        project: project
      }
    };

    return paramObj
  }
}

//調(diào)用
  let newDel=way.format(this.resId, this.$store.state.project)
  ll.initialize(newDel(),this);
回答
編輯回答
擱淺

明明一句話就可以搞定,還非要搞個函數(shù),又是new 又是return function;這么折騰干嘛

2017年11月9日 06:45
編輯回答
壞脾滊

樓主更像是在封裝參數(shù)
ES6的話可以這么寫

class Params{
    constructor(resId,project){
        this.resId = resId;
        this.project = {
            project: project
        };
    }
}
let resId = 2;
let project = '12345678'

let param = new Params(resId,project);

console.log(param.resId,param.project);
console.log(param);

ES5的話可以這么寫

function Project(project){
    this.project = project;
}

function Params(resId,project){
    this.resId = resId;
    this.project = new Project(project);
}

var resId = 2;
var project = '12345678'

var param = new Params(resId,project);

console.log(param.resId,param.project);
console.log(param);
2017年4月20日 10:23