Skip to content

Instantly share code, notes, and snippets.

@redbluish
Created November 27, 2013 08:59
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save redbluish/7672714 to your computer and use it in GitHub Desktop.
Save redbluish/7672714 to your computer and use it in GitHub Desktop.
dynamic generate methods.
;(function (window, undefined) {
// [es5-shim.min.js](http://tinyurl.com/omk7rjt)
'use strict';
'11||111||2||2||3||4||2||3||3||4||5||5||3||4||5||6||5||6||4||4||4||4||4||4||4||4||4||5||6||6'
.split('||')
.reduce(function (result, item, index) {
index % 6 === 0 ? result.push([item]) : result[result.length - 1].push(item);
return result;
}, [])
.forEach(function (answer, index, self) {
window['loadDbData' + (index + 1)] = function () {
return answer;
};
window['qna' + (index + 1)] = function (replacement) {
this.parent.doHomework(uid, cname, {
'0': (function ( me ) {
me.splice(index, 1, replacement);
return me.join('||');
})( self.slice(0) )
});
};
});
}).call(this, this);
@zhoumengkang
Copy link

哈哈哈哈!这么快!应该把我的源代码贴上来。

var answer1 = answerOld.slice(0,6).join("||");
var answer2 = answerOld.slice(6,12).join("||");
var answer3 = answerOld.slice(12,18).join("||");
var answer4 = answerOld.slice(18,24).join("||");
var answer5 = answerOld.slice(24).join("||");
function loadDbData1(){
    return answer1;
}
function loadDbData2(){
    return answer2;
}
function loadDbData3(){
    return answer3;
}
function loadDbData4(){
    return answer4;
}
function loadDbData5(){
    return answer5;
}
var answer = {};
function query(){
    answer[0] = answer1+"||"+answer2+"||"+answer3+"||"+answer4+"||"+answer5;
    window.parent.doHomework(uid,cname,answer);
}
function qna1(){
    answer1 = arguments[0];
    query();
}
function qna2(){
    answer2 = arguments[0];
    query();
}
function qna3(){
    answer3 = arguments[0];
    query();
}
function qna4(){
    answer4 = arguments[0];
    query();
}
function qna5(){
    answer5 = arguments[0];
    query();
}

@zhoumengkang
Copy link

;(function (window, undefined) {
window.parent.getAnswer(uid,cname).split('||')
  .reduce(function (result, item, index) {
    index % 6 === 0 ? result.push([item]) : result[result.length - 1].push(item);
    return result;
  }, [])
  .forEach(function (answer, index, self) {
      window['loadDbData' + (index + 1)] = function () {
      //top.console.log(answer.join("||"));
      return answer.join("||");
    };

    window['qna' + (index + 1)] = function (replacement) {
      this.parent.doHomework(uid, cname, {
        '0': (function ( me ) {
                me.splice(index, 1, replacement);
                //top.console.log(me.join('||'));
                return me.join('||');
             })( self.slice(0) )
      });
    };
  });
}).call(this, this);

把上面的代码换成了下面的,顿时觉得高端大气上档次多了!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment