Les réponses de cette question dit utiliser pour vérifier si la fonction est définie:Vérifier les fonctions définies natives avec prototype
typeof yourFunction === 'function'
Mais j'ai essayé cela sur une fonction non standard link(). Et en fait cela est retourné faux. La fonction est disponible sur tous les navigateurs que j'ai essayés - IE, Chrome, Opera, FireFox.
typeof String.link === 'function' // false
typeof String.link() === 'function' // Uncaught error ...
Alors quelque part je trouve:
typeof String.prototype.link === 'function' //true
qui retourne réellement vrai. Quelle est la différence et pourquoi le premier échoue?
Je pensais à ce sujet, [ce] (http://stackoverflow.com/questions/221294/how-do-you-get-a-timestamp-in-javascript) effectivement aidé, et en fait 'typeof String(). link === 'function'' renvoie la valeur true. De cette façon, String crée un objet vide et le lien "availability" doit être vérifié par rapport à celui-ci. – Bakudan
@Milo mais vous créeriez un objet juste pour vérifier 'link' plutôt que de vérifier' link' directement dans le prototype. – Joseph
Oh, je ne pensais pas de cette façon! C'est plus pratique. – Bakudan