关于闭包与面向对象的问题

封装了一个方法,用了两种方式,效果是有了,就是不知道对不对,能不能这样写,本人新手,还很迷糊,还想问一下,这两种可否在项目大量使用,利弊是什么

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

//调用
 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
  }
}

//调用
  let newDel=way.format(this.resId, this.$store.state.project)
  ll.initialize(newDel(),this);
阅读 2.3k
2 个回答

楼主更像是在封装参数
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);

明明一句话就可以搞定,还非要搞个函数,又是new 又是return function;这么折腾干嘛

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题