I've been learning about the this keyword in javascript, but I'm not understanding the following code. I'm trying to determine what the code is doing, but whenever variable Y is called by y(), it freezes everything up. Also, i'm pretty sure that the b variable is true when the function is immediately ran and then false anytime thereafter.
In any case, can someone explain this code to me? I think 'this' is actually passing var y, but please correct me:
var x = (function(){
var b = !![];
return function(p1,p2){
var z = b ? function(){
if(p2){
var c = p2.apply(p1,arguments)
return (p2=null),c;
}
}:function(){};
return (b=![]),z;
};
}()),
y = x(this,function(){
return
y.toString().search('(((.+)+)+)+$').toString().constructor(y).search('(((.+)+)+)+$');
});
y(); //freezes here