diff --git a/docs/components.md b/docs/components.md index b6cc3131..efe782d1 100644 --- a/docs/components.md +++ b/docs/components.md @@ -136,7 +136,7 @@ myApp.users.index.view = function() { There's no rule for how you should organize code, and given that namespacing is often achieved with simple javascript, you can use simple javascript patterns to alias a long namespace and reduce the amount of typing: ```javascript -new function() { +!function() { var module = myApp.users.index = {} module.vm = {/*...*/} @@ -148,7 +148,7 @@ new function() { return vm.something } -} +}() ``` --- diff --git a/docs/getting-started.md b/docs/getting-started.md index 4384622f..84760ade 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -130,7 +130,7 @@ In the case of our todo application, the view-model needs a few things: it needs ```javascript //define the view-model -todo.vm = new function() { +todo.vm = (function() { var vm = {} vm.init = function() { //a running list of todos @@ -148,7 +148,7 @@ todo.vm = new function() { }; } return vm -} +}()) ``` The code above defines a view-model object called `vm`. It is simply a javascript object that has a `init` function. This function initializes the `vm` object with three members: `list`, which is simply an array, `description`, which is an `m.prop` getter-setter function with an empty string as the initial value, and `add`, which is a method that adds a new Todo instance to `list` if an input description getter-setter is not an empty string. @@ -334,10 +334,10 @@ vm.add = function() { vm.list.push(new todo.Todo({description: vm.description()})); vm.description(""); } -}.bind(this); +}; ``` -The difference with the modified version is that `add` no longer takes an argument, and we call `.bind(this)` at the end to lock the scoping of `this` inside of the `add` method. +The difference with the modified version is that `add` no longer takes an argument. With this, we can make the `onclick` binding on the template *much* simpler: @@ -447,7 +447,7 @@ todo.TodoList = Array; //stores a description for new todos before they are created //and takes care of the logic surrounding when adding is permitted //and clearing the input after adding a todo to the list -todo.vm = new function() { +todo.vm = (function() { var vm = {} vm.init = function() { //a running list of todos @@ -465,7 +465,7 @@ todo.vm = new function() { }; } return vm -} +}()) //the controller defines what part of the model is relevant for the current page //in our case, there's only one view-model that handles everything diff --git a/docs/mithril.render.md b/docs/mithril.render.md index 9874ac56..a391156c 100644 --- a/docs/mithril.render.md +++ b/docs/mithril.render.md @@ -64,17 +64,17 @@ The example below shows how to use a SubtreeDirective object to create a static var app = {} //here's an example plugin that determines whether data has changes. -//in this case, it simply assume data has changed the first time, and never changes after that. -app.bindOnce = new function() { +//in this case, it simply assumes data has changed the first time, and never changes after that. +app.bindOnce = (function() { var cache = {} - function(view) { + return function(view) { if (!cache[view.toString()]) { cache[view.toString()] = true return view() } else return {subtree: "retain"} } -} +}()) //here's the view app.view = function() { diff --git a/tests/mock.js b/tests/mock.js index 7adbceeb..68092cef 100644 --- a/tests/mock.js +++ b/tests/mock.js @@ -33,7 +33,7 @@ if (!Object.keys) { } var mock = {} -mock.window = new function() { +mock.window = (function() { var window = {} window.document = {} window.document.childNodes = [] @@ -136,7 +136,7 @@ mock.window = new function() { callback() } } - window.XMLHttpRequest = new function() { + window.XMLHttpRequest = (function() { var request = function() { this.$headers = {} this.setRequestHeader = function(key, value) { @@ -155,7 +155,7 @@ mock.window = new function() { } request.$instances = [] return request - } + }()) window.location = {search: "", pathname: "", hash: ""}, window.history = {} window.history.pushState = function(data, title, url) { @@ -165,4 +165,4 @@ mock.window = new function() { window.location.pathname = window.location.search = window.location.hash = url } return window -} \ No newline at end of file +}()) \ No newline at end of file