w3schools vacio una tipos saber pasar parametros objeto numero isnan funciones funcion esta ejemplo desde cual comprobar javascript

una - saber si un objeto esta vacio javascript



¿Cómo comprobar si existe función en JavaScript? (25)

Aquí hay una solución simple y operativa para verificar la existencia de una función y evaluarla de forma dinámica mediante otra función;

Función de disparo

function runDynmicFunction(functionname){ if (typeof window[functionname] == "function" ) { //check availability window[functionname]("this is from the function it "); //run function and pass a parameter to it } }

y ahora puede generar la función dinámicamente, tal vez utilizando PHP como este

function runThis_func(my_Parameter){ alert(my_Parameter +" triggerd"); }

Ahora puedes llamar a la función usando eventos generados dinámicamente.

<?php $name_frm_somware ="runThis_func"; echo "<input type=''button'' value=''Button'' onclick=''runDynmicFunction(/"".$name_frm_somware."/");''>"; ?>

El código HTML exacto que necesitas es

<input type="button" value="Button" onclick="runDynmicFunction(''runThis_func'');">

Seguí esta guía para crear un nuevo JS para la comunicación flash.

Mi codigo es

function getID( swfID ){ if(navigator.appName.indexOf("Microsoft") != -1){ me = window[swfID]; }else{ me = document[swfID]; } } function js_to_as( str ){ me.onChange(str); }

Sin embargo, a veces mi onChange no se carga. Errores de Firebug con

me.onChange no es una función

Quiero degradarme con gracia porque esta no es la característica más importante de mi programa. typeof da el mismo error.

¿Alguna sugerencia sobre cómo asegurarse de que existe y luego ejecutar solo en onChange ?

(Ninguno de los métodos a continuación, excepto intentar atrapar una obra)


Este simple código jQuery debería hacer el truco:

if (jQuery.isFunction(functionName)) { functionName(); }


He intentado la respuesta aceptada; sin embargo:

console.log(typeof me.onChange);

devuelve ''indefinido''. He notado que la especificación establece un evento llamado ''onchange'' en lugar de ''onChange'' (observe el camelCase).

Cambiar la respuesta original aceptada a lo siguiente me funcionó:

if (typeof me.onchange === "function") { // safe to use the function }


Intenta algo como esto:

if (typeof me.onChange !== "undefined") { // safe to use the function }

o mejor aún (según el comentario de UpTheCreek upvoted)

if (typeof me.onChange === "function") { // safe to use the function }


Intente typeof : busque ''undefined'' para decir que no existe, ''function'' para una función. JSFiddle para este código

function thisishere() { return false; } alert("thisishere() is a " + typeof thisishere); alert("thisisnthere() is " + typeof thisisnthere);

O como si:

if (typeof thisishere === ''function'') { // function exists }

O con un valor de retorno, en una sola línea:

var exists = (typeof thisishere === ''function'') ? "Value if true" : "Value if false"; var exists = (typeof thisishere === ''function'') // Returns true or false



Me gusta usar este método:

function isFunction(functionToCheck) { var getType = {}; return functionToCheck && getType.toString.call(functionToCheck) === ''[object Function]''; }

Uso:

if ( isFunction(me.onChange) ) { me.onChange(str); // call the function with params }


No vi esto sugerido: me.onChange && me.onChange (str);

Básicamente, si me.onChange está indefinido (que lo estará si no se ha iniciado), entonces no ejecutará la última parte. Si me.onChange es una función, se ejecutará me.onChange (str).

Incluso puedes ir más allá y hacer:

me && me.onChange && me.onChange(str);

En caso de que yo también sea asíncrono.


Para ilustrar las respuestas anteriores, aquí hay un breve fragmento de JSFiddle:

function test () { console.log() } console.log(typeof test) // >> "function" // implicit test, in javascript if an entity exist it returns implcitly true unless the element value is false as : // var test = false if(test){ console.log(true)} else{console.log(false)} // test by the typeof method if( typeof test === "function"){ console.log(true)} else{console.log(false)} // confirm that the test is effective : // - entity with false value var test2 = false if(test2){ console.log(true)} else{console.log(false)} // confirm that the test is effective : // - typeof entity if( typeof test ==="foo"){ console.log(true)} else{console.log(false)} /* Expected : function true true false false */


Para mí la forma más fácil:

function func_exists(fname) { return (typeof window[fname] === ''function''); }


Prueba este:

Window.function_exists=function(function_name,scope){ //Setting default scope of none is provided If(typeof scope === ''undefined'') scope=window; //Checking if function name is defined If (typeof function_name === ''undefined'') throw new Error(''You have to provide an valid function name!''); //The type container var fn= (typeof scope[function_name]); //Function type If(fn === ''function'') return true; //Function object type if(fn.indexOf(''function'')!== false) return true; return false; }

Tenga en cuenta que escribí esto con mi teléfono celular Puede contener algunos problemas en mayúsculas y / u otras correcciones necesarias, como por ejemplo el nombre de las funciones

Si desea que una función como PHP compruebe si la var está establecida:

Window.isset=function (variable_con){ If(typeof variable_con !== ''undefined'') return true; return false; }


Qué tal si:

if(''functionName'' in Obj){ //code }

p.ej

var color1 = new String("green"); "length" in color1 // returns true "indexOf" in color1 // returns true "blablabla" in color1 // returns false

o en cuanto a su caso:

if(''onChange'' in me){ //code }

Ver documentos MDN .


Si está buscando una función que sea un complemento de jQuery, necesita usar $ .fn.myfunction

if (typeof $.fn.mask === ''function'') { $(''.zip'').mask(''00000''); }


Si está utilizando eval para convertir una cadena en función, y desea verificar si existe este método, querrá usar typeof y su cadena de función dentro de una eval :

var functionString = "nonexsitantFunction" eval("typeof " + functionString) // returns "undefined" or "function"

No inviertas esto y prueba el tipo de eval . Si haces un ReferenceError será lanzado:

var functionString = "nonexsitantFunction" typeof(eval(functionString)) // returns ReferenceError: [function] is not defined


Siempre reviso así:

if(!myFunction){return false;}

simplemente colóquelo antes de cualquier código que use esta función


Sin condiciones

me.onChange=function(){}; function getID( swfID ){ if(navigator.appName.indexOf("Microsoft") != -1){ me = window[swfID]; }else{ me = document[swfID]; } } function js_to_as( str ){ me.onChange(str); }


Sospecho que no se me asigna correctamente la carga.

Mover la llamada get_ID al evento onclick debería hacerse cargo de ello.

Obviamente puedes seguir atrapando como se mencionó anteriormente:

function js_to_as( str) { var me = get_ID(''jsExample''); if (me && me.onChange) { me.onChange(str); } }


Tuve el caso en el que el nombre de la función varía según una variable (var ''x'' en este caso) agregada al nombre de las funciones. Esto funciona:

if ( typeof window[''afunction_''+x] === ''function'' ) { window[''afunction_''+x](); }


Tuve este problema

if (obj && typeof obj === ''function'') { ... }

se mantuvo lanzando un error de referencia si el objeto no estaba definido.

Al final hice lo siguiente:

if (typeof obj !== ''undefined'' && typeof obj === ''function'') { ... }

Un colega me señaló que verificar si es !== ''undefined'' y luego === ''function'' es redundante, por supuesto.

Más simple:

if (typeof obj === ''function'') { ... }

Mucho más limpio y funciona muy bien.


Voy a dar un paso más para asegurarse de que la propiedad sea realmente una función

function js_to_as( str ){ if (me && me.onChange && typeof me.onChange === ''function'') { me.onChange(str); } }


Y luego está esto...

( document.exitPointerLock || Function )();


function sum(nb1,nb2){ return nb1+nb2; } try{ if(sum() != undefined){/*test if the function is defined before call it*/ sum(3,5); /*once the function is exist you can call it */ } }catch(e){ console.log("function not defined");/*the function is not defined or does not exists*/ }


//Simple function that will tell if the function is defined or not function is_function(func) { return typeof window[func] !== ''undefined'' && $.isFunction(window[func]); } //usage if (is_function("myFunction") { alert("myFunction defined"); } else { alert("myFunction not defined"); }


function function_exists(function_name) { return eval(''typeof '' + function_name) === ''function''; } alert(function_exists(''test'')); alert(function_exists(''function_exists''));

O

function function_exists(func_name) { // discuss at: http://phpjs.org/functions/function_exists/ // original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // improved by: Steve Clay // improved by: Legaev Andrey // improved by: Brett Zamir (http://brett-zamir.me) // example 1: function_exists(''isFinite''); // returns 1: true if (typeof func_name === ''string'') { func_name = this.window[func_name]; } return typeof func_name === ''function''; }


function js_to_as( str ){ if (me && me.onChange) me.onChange(str); }