One additional point the author didn't mention:
Executing JavaScript code sent from the server requires your JS objects to be in the global scope. Returning JSON (on the other hand) allows you to keep your objects and logic inside a closure.
Executing JavaScript code sent from the server requires your JS objects to be in the global scope. Returning JSON (on the other hand) allows you to keep your objects and logic inside a closure.
If both the requester of the AJAX call and the receiver are in the same closure, there's no need for those objects to be globally accessible.