Skip to content

Instantly share code, notes, and snippets.

@winsonwq
Last active September 7, 2016 17:28
Show Gist options
  • Save winsonwq/6752460 to your computer and use it in GitHub Desktop.
Save winsonwq/6752460 to your computer and use it in GitHub Desktop.
闭包练习三
// function counter(initValue, seed) {}
// testcase
var incrementByOneFromOne = counter(1, 1);
incrementByOneFromOne.should.include.keys('value');
incrementByOneFromOne.should.include.keys('increment');
incrementByOneFromOne.should.include.keys('decrement');
// testcase
var incrementByOneFromOne = counter(1, 1);
incrementByOneFromOne.value().should.equals(1);
// testcase
var incrementByOneFromOne = counter(1, 1);
incrementByOneFromOne.increment().value().should.equals(2);
// testcase
var incrementByOneFromOne = counter(1, 1);
incrementByOneFromOne.decrement().value().should.equals(0);
// testcase
var incrementByTenFromFive = counter(10, 5);
incrementByTenFromFive.value().should.equal(10);
incrementByTenFromFive.increment().value().should.equal(15);
incrementByTenFromFive.decrement().value().should.equal(10);
// testcase
var counter1 = counter(1, 1);
var counter2 = counter1(2, 2);
counter2.value().should.equal(3);
// testcase
var counter1 = counter(1, 1);
var counter2 = counter1(2, 2);
var counter3 = counter2(-1, -1);
counter3.value().should.equal(2);
// testcase
var counter1 = counter(1, 1);
var counter2 = counter1(2, 2);
counter2.increment().value().should.equal(6);
// testcase
var counter1 = counter(1, 1);
var counter2 = counter1(2, 2);
counter2.decrement().value().should.equal(0);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment