I am reading javascript web application and the author is using following code:
mod.load = function(func){
$($.proxy(func, this));
};
Can someone help me to understand why returning function from jQuery.proxy is inside jQuery wrapper.
Is this the same as:
mod.load = function(func){
var temp = $.proxy(func, this);
temp();
};
3 Answers 3
They are not the same but they have the same effect. Your second example executes the returned function directly while jQuery(function) binds it to the onload like $(document).ready(). mod.load probably is the onload however, so this makes no difference.
Comments
Calling $() with a function argument is equivalent to applying $(document).ready() to that function: it waits for the DOM to be ready before calling it.
Therefore, in your second example, temp() may be called before the DOM is ready, depending on the moment when mod.load() itself runs.
1 Comment
Is the same, is just a shorthand.
$.proxy(func, this)must returning function