Yes Ariel, I was talking about user defined stuff and obviously typeof
"unknown" breaks the rule as well but this is not the case, is it?

If toString.call(obj) is not reliable cause it could return [object Object]
DBJ "mess" is not reliable as well because passed variable could not produce
what he is expecting, starting from document.getElementById which is object
and not function in IE, got the point?

At least you told me why there is a call rather than an instanceof but what
about this for IE DOM functions?

return !!obj && typeof obj.toString === "undefined" &&
/^\s*\bfunction\b/.test(obj);

it works fine to me in every IE (other browsers will be filtered by first
feature test)

Regards

On Mon, Jul 27, 2009 at 5:29 PM, Daniel Friesen
<nadir.seen.f...@gmail.com>wrote:

>
> typeof fn === 'function'; // Some things like
> document.createElement('object'); return wonky results
> fn instanceof Function; // Breaks across iFrames
> toString.call(fn) === "[object Function]"; // Works the same across
> iFrames and returns more reliable results
>
> ~Daniel Friesen (Dantman, Nadir-Seen-Fire) [http://daniel.friesen.name]
>
> Andrea Giammarchi wrote:
> > About isFunction
> >
> > I lost the point where toString.call(obj) === "[object Function]" was
> > introduced instead of obj instanceof function
> >
> > I understand differences in IE so I wonder if two distinct callbacks
> > could solve the odyssey:
> >
> >     isFunction: function( obj ) {
> >         return obj instanceof Function;
> >     },
> >
> >     isDOMFunction: toString.call(window.alert) === "[object Function]" ?
> >         function( obj ) {
> >             return toString.call(obj) === "[object Function]";
> >         }:
> >         // IE only and only until standard native function manifest
> >         function( obj ){
> >             return !!obj && typeof obj.toString === "undefined" &&
> > /^\s*\bfunction\b/.test(obj);
> >         }
> >     ,
> >
> > In this way we could consider that in every browser, and when
> > call/apply are supported, isFunction(fn) will guarantee call/apply
> > while a DOMFunction could require a try catch or a different behavior
> > for IE
> >
> > switch(true){
> >     case $.isFunction(fn): return fn.call(what, ever);
> >     case $.isDOMFunction(fn): what.push.call(what, toArray(fn(ever)));
> > return what;
> >     default: throw new Error("what tf?");
> > }
> >
> > ... or maybe not?
> > Regards
> >
> >
> >
> > On Sun, Jul 26, 2009 at 4:09 PM, Andrea Giammarchi
> > <andrea.giammar...@gmail.com <mailto:andrea.giammar...@gmail.com>>
> wrote:
> >
> >     I usually encapsulate toString from Object.prototype and if
> >     somebody breaks the rule it means we cannot trust anything
> >     included typeof. So, in few words, nobody has intersts into break
> >     this rule, imho.
> >
> >>     On Jul 26, 2009 8:07 AM, "DBJDBJ" <dbj...@gmail.com
> >>     <mailto:dbj...@gmail.com>> wrote:
> >>
> >>
> >>     Also, IMHO this yields high level of encapsulation of an important
> >>     mechanism.
> >>     Which is a good thing.
> >>     And it is a fraction of a micro second slower then
> >>
> >>     Object.prototype.toString.call(x) === "[object Object]"
> >>
> >>     but it is more compact ...
> >>
> >>     In any case we are entering the subjective judgement phase, so I
> >>     think
> >>     we should stop here and leave it to jQuery team to use this or
> not...
> >>
> >>     --DBJ On Jul 26, 12:09 am, Andrea Giammarchi
> >>     <andrea.giammar...@gmail.com
> >>     <mailto:andrea.giammar...@gmail.com>> wrote:
> >>
> >>     > I miss the point about regexp usage ... please tell me the
> >>     difference (in a > real scenario) betwe...
> >>
> >>     > On Sat, Jul 25, 2009 at 1:38 PM, DBJDBJ <dbj...@gmail.com
> >>     <mailto:dbj...@gmail.com>> wrote: > > > This indeed woks :
>  functi...
> >>
> >
> >
> > >
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"jQuery Development" group.
To post to this group, send email to jquery-dev@googlegroups.com
To unsubscribe from this group, send email to 
jquery-dev+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to