Hi Raven, Technically, you are right, and the second solution is a tad faster. I highly doubt you can even measure the difference, though. At least not with at least as a few 1000's of calls on it. Let me explain a little bit, change detection has changed a lot from AngularJS to Angular. While in the past, there was a digest cycle, and functions like tat would have been called up many times, that is not the case anymore.
In Angular, there is no cycle, everything is evaluated just 1 time. So if you have ~200 elements, this just adds 200 function calls. That will not take that much time, a simple function call usually stays under 1 nanosecond. Take this code, and paste it in your console! (function (){ "use strict"; class test { constructor() { this.canSave = true; this.isUnchanged = false; this.isSpecial = () => new Date(); // note I return something that will change on every iteration! // I do this so the benchmark won't be optimized by the compiler to a noop. } setClasses() { let classes = { saveable: this.canSave, // true modified: !this.isUnchanged, // false special: this.isSpecial, // true }; return classes; } } let myvar = new test(); let someArray = []; let t0 = performance.now() let iterations = 200000; for (let x=0; x<iterations; x++) { let result = myvar.setClasses().special() if (result < Math.random()*t0) { //again doing something to prevent this from being optimized to a NOOP someArray.push(result) } } let t1 = performance.now() console.log(`Each Call to setClasses took ${ Math.ceil(((t1-t0)*10000)/iterations)/10} NANOseconds. `); }()); On my system, this results into ~1.5 Nanosecond. (and this is doing quite some more work, in this case solely to prevent the JS optimizer from making the loop a no-op. (yes the JS compiler is smart enough to not loop x times if you are just repeating yourself) if I change the isSpecial to something that returns a 'static' value, it goes well below 0.2 Nano (note that I'm rounding UP) Moral of the story, don't do premature optimizations. It probably won't do you any good. In Angular, you don't need to worry as much about this as in angularjs 1.x. Also, measuring beats assumptions. With kind regards Sander -- You received this message because you are subscribed to the Google Groups "Angular" group. To unsubscribe from this group and stop receiving emails from it, send an email to angular+unsubscr...@googlegroups.com. To post to this group, send email to angular@googlegroups.com. Visit this group at https://groups.google.com/group/angular. For more options, visit https://groups.google.com/d/optout.