For the jQuery object, the each method is simply delegated: the jQuery object is passed as the first parameter to the each method of jQuery. In other words: the each method provided by jQuery is for the object provided by parameter one. All child elements in the method are called one by one. The each method provided by the jQuery object calls the sub-elements inside jQuery one by one.
Let us take a look at the specific implementation of the each method provided by jQuery, jQuery.each(obj,fn,arg)
This method has three parameters: the object obj to be operated on, the function fn to be operated on, and the function parameters args.
Let’s discuss in terms of ojb objects:
1. The obj object is an array
Theeach method will call the fn function one by one on the sub-elements in the array until the result returned by calling a certain sub-element is false. In other words, we can process it with the provided fn function to make it meet certain conditions. Just exit the each method call. When the each method provides the arg parameter, the parameter passed in by the fn function call is arg, otherwise: the subelement index, the subelement itself.
2. obj object is not an array
The biggest difference between this method and 1 is that the fn method will be executed one after another without considering the return value. In other words, all properties of the obj object will be called by the fn method, even if the fn function returns false. The parameters passed in the call are similar to 1.
It is important to note that the specific calling method of fn in each method is not simple fn(i, val) or fn(args), but fn.call(val,i,val) or fn. The form of apply(obj.args) means that in your own implementation of fn, you can directly use this pointer to refer to the sub-elements of the array or object. This method is an implementation method used by most jQuery.