Confusion between update methods

When should i use these methods?

scheduleUpdate();
scheduleUpdateWithPriority(int);
scheduleUpdateWithPriorityLua(int,int);

scheduleUpdate() is the method you want to use by default in order to update() your game logic.
scheduleUpdateWithPriority(int) is the same thing but you can also pass a integer value to tell cocos2d-x
what to prioritzie first:
for example
if you have a selector that was set before you called scheduleUpdate() then the update() method by default will be called after the selector. But if you pass a priority value i.e like -1 than your update() method will get called first every frame.
It’s kind of like z-ordering for cocos2d::Node’s, the lower the value it will get drawn first the higher then it will get drawn last.
And scheduleUpdateWithPriorityLua(int, int) is the same thing but if you have some lua script that you want to bind to you need to pass in a handler which is an ‘int’ value.