?????????в?????????length ???????????????????????ū?????????????????????????β????? dataStore ??????????????????????????????????? length ????????????????к??????????????????????????????????? setup ???? teardown ?????????? dataStore ????????????????????????????????????? dataStore ??????????????????????????????塣????????????£?
????JavaScript
????function newDataStore() {
????var data = [];
????return {
????push: function (item) {
????data.push(item);
????}??
????pop: function() {
????return data.pop();
????}??
????length: function() {
????return data.length;
????}
????};
????}
????var dataStore = newDataStore();
????function newDataStore() {
????var data = [];
????return {
????push: function (item) {
????data.push(item);
????}??
????pop: function() {
????return data.pop();
????}??
????length: function() {
????return data.length;
????}
????};
????}
????var dataStore = newDataStore();
?????????????????????????£?
????JavaScript
????module("dataStore");
????test("pop"?? function() {
????var dataStore = newDataStore();
????dataStore.push("foo");
????dataStore.push("bar")
????equal(dataStore.pop()?? "bar"?? "popping returns the most-recently pushed item");
????});
????test("length"?? function() {
????var dataStore = newDataStore();
????dataStore.push("foo");
????equal(dataStore.length()?? 1?? "adding 1 item makes the length 1");
????});
????module("dataStore");
????test("pop"?? function() {
????var dataStore = newDataStore();
????dataStore.push("foo");
????dataStore.push("bar")
????equal(dataStore.pop()?? "bar"?? "popping returns the most-recently pushed item");
????});
????test("length"?? function() {
????var dataStore = newDataStore();
????dataStore.push("foo");
????equal(dataStore.length()?? 1?? "adding 1 item makes the length 1");
????});
???????????????? dataStore ????????????????£?????????????????????????????????????DataStore ?????????????????????????????????
?????????????????????
??????????????????????? ?? JavaScript ?н???????????г????????????????????????????????????????????????????????????????????????????????????????′?????????????????????????????????????????????????к????????????в?????????????μ????
????JavaScript
????function Templater() {
????function supplant(str?? params) {
????for (var prop in params) {
????str.split("{" + prop +"}").join(params[prop]);
????}
????return str;
????}
????var templates = {};
????this.defineTemplate = function(name?? template) {
????templates[name] = template;
????};
????this.render = function(name?? params) {
????if (typeof templates[name] !== "string") {
????throw "Template " + name + " not found!";
????}
????return supplant(templates[name]?? params);
????};
????}
????function Templater() {
????function supplant(str?? params) {
????for (var prop in params) {
????str.split("{" + prop +"}").join(params[prop]);
????}
????return str;
????}
????var templates = {};
????this.defineTemplate = function(name?? template) {
????templates[name] = template;
????};
????this.render = function(name?? params) {
????if (typeof templates[name] !== "string") {
????throw "Template " + name + " not found!";
????}
????return supplant(templates[name]?? params);
????};
????}