Is there a way to prevent de-obfuscating JavaScript code which has already been obfuscated.
Obfuscated JS:
var _0xb5ae=["\x73\x68\x6F\x77","\x2E\x6C\x6F\x61\x64\x65\x72","\x6D\x6F\x75\x73\x65\x6D\x6F\x76\x65","\x2E\x62\x6C\x6F\x63\x6B"];$(_0xb5ae[3])[_0xb5ae[2]](function(){clearTimeout(e);e= setTimeout(function(){$(_0xb5ae[1])_0xb5ae[0]},1000)})
No, there is no way to prevent deobfuscating, but you could probably minify it aggressively before obfuscating it, just to render it as complex as possible.
In any case, the client will be able to see the source, and with the right amount of motivation, there's nothing that can't be read and understood.
If you wish to protect your code, execute it only server-side.
Having said that, you can prevent (or at least limit) theft by using the appropriate license and/or copyright on your code. This of course will not prevent anyone from stealing it, but gives you a legal recourse in case they try to make money off your hard work.