Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
5
respuestas

Dudas de funciones vs metodos

Saludos, tengo una gran duda, nunca me ha quedado claro cual es la diferencia entre función y método agradezco si me pueden responder de manera teórica, pero por favor con un ejemplo simple para entender cual es la diferencia en javascript o pues en cualquier lenguaje de programación, gracias?

5 respuestas

En general, se puede decir que una función es un bloque de código que se ejecuta cuando se llama desde cualquier parte del programa, y que puede recibir argumentos y devolver un valor. Por ejemplo, en JavaScript, podrías escribir una función que sume dos números:

function sumar(a, b) {
  return a + b;
}

Puedes llamar a esta función desde cualquier parte de tu programa, y el código dentro de la función se ejecutará con los valores que le hayas pasado como argumentos.

Por otro lado, un método es una función que pertenece a un objeto específico. Es decir, un método se define dentro de una clase o un objeto, y puede acceder a las propiedades y métodos de ese objeto a través de la palabra clave this. Por ejemplo, en JavaScript, podrías definir un objeto que represente una persona, con propiedades como nombre y edad, y un método que imprima su información:

const persona = {
  nombre: "Juan",
  edad: 30,
  presentarse: function() {
    console.log(`Hola, mi nombre es ${this.nombre} y tengo ${this.edad} años.`);
  }
};

En este caso, el método presentarse está definido dentro del objeto persona, y puede acceder a las propiedades nombre y edad a través de this. Para llamar al método, simplemente tienes que escribir persona.presentarse().

En resumen, la principal diferencia entre una función y un método es que el método está asociado a un objeto específico y puede acceder a sus propiedades y métodos a través de this.

Una función, por otro lado, puede ser llamada desde cualquier parte del programa y no está asociada a ningún objeto en particular.

Ten en consideración que cuando hablo de objetos hablo de Programación orientada a objetos

gracias por la respuesta, ahora de acuerdo a tu respuesta, es decir un método puede estar dentro de una función, pero no al contrario, correcto?

No precisamente.

En la Programación orientada a objetos tu creas objetos o fracciones de codigo que representan objetos por ejemplo.

De forma muy burda imagina que creas como objeto un carro, este carro tiene propiedades que tienen todos los carros

Carro{
ruedas: 4,
puertas: 4,
faros: 2,
acelerar: False;
}

como podrás notar la propiedad acelerar esta en false por lo cual el carro no esta acelerando y nunca correrá, para hacer que el carro se ponga en marcha tendrias que crear una función que al llamarla cambie esa propiedad a True, pero desde afuera del código del objeto no lo puedes hacer, algo como

function acelerar(estado){
carro.acelerar= estado
}

acelerar(True)

no seria posible, dentro del código de carro debe existir esta función acelerar.

Carro{
ruedas= 4
puertas= 4
faros= 2
acelerar = False
acelerar: function() {
    this.acelerar=True;
  }
}

y de esta forma esa accion(funcion) de acelerar se vuelve un metodo.

Piénsalo asi todos los metodos son funciones, pero no todas las funciones son metodos, el metodo solo esta asociado a los objetos (clases).

Nota: el codigo que pase no esta bien solo es un ejemplo basico y sin buena sintaxis

Buen dia, gracias por la informacion logre identificar la diferencia entre funciones y métodos.

Excelente amigo que bueno, si esta en tus posibilidades coloca el tema como resulto para que en un futuro alguien con la misma duda sepa que aquí puede buscar la respuesta a una duda similar.