为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

开心每一天1111 2019-03-01 18:16:40
封装了一个方法,用了两种方式,效果是有了,就是不知道对不对,能不能这样写,本人新手,还很迷糊,还想问一下,这两种可否在项目大量使用,利弊是什么//方式一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 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

楼主更像是在封装参数

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);


查看完整回答
反对 回复 2019-03-04
?
12345678_0001

TA贡献1802条经验 获得超5个赞

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


查看完整回答
反对 回复 2019-03-04
  • 2 回答
  • 0 关注
  • 467 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号