English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
MétodosSon métodos asociados con un objeto, o funciones relacionadas, un método es un objeto que es una propiedad de una función.
La definición de métodos es idéntica a la de funciones comunes, la diferencia está en que deben asignarse como propiedades del objeto.
Para recuperar métodos del objeto, los llamará de la misma manera que una función común, solo que los adjuntará a la variable del objeto.
// Crear un objeto var user = { nombre: "Seagull", lastName : "an", edad: 22, ubicación: "New Delhi", getName : function() { return this.firstName + " " + this.lastName; } ; //Acceder al método getName() user.getName();Prueba ver‹/›
Si se accede a un método sin paréntesis (), se devolverá la definición de la función:
user.getName;Prueba ver‹/›
JavaScript tiene un keyword especial llamado this, que se puede usar en métodos para referirse al objeto actual.
Quizás ya haya notado que nuestros métodos son un poco extraños. Aquí hay un ejemplo:
getName: function() { return this.firstName + " " + this.lastName; }
El keyword this se refiere al objeto interno en el que se escribe el código-Por lo tanto, en este caso, this es equivalente auser.
En otras palabras, this.firstName significaEste objetola propiedad firstName.
Puede usarKeywords JSTutorialesEn JSConozca más sobre el keyword this.
Para agregar un nuevo método a un objeto, puede usar el operador de asignación (=) para asignar una nueva función a la propiedad.
Este ejemplo agrega el método "greet" al objeto usuario:
user.greet = function() { return "Hello World"; ;Prueba ver‹/›
ECMAScript 5(2009) introdujo Getters y Setters.
Getter es un método para obtener el valor de un atributo específico.
Setter es un método para establecer el valor de un atributo específico.
Puede definir getters y setters en cualquier objeto nuclear predefinido o objeto definido por el usuario que soporte la adición de nuevas propiedades.
Este ejemplo utiliza get locLa propiedad comoubicaciónValor de la propiedad:
//Crear un objeto var user = { nombre: "Seagull", apellido: "Anna", edad: 22, ubicación: "New Delhi", get loc() { return this.location; } ; //Mostrar datos de un objeto document.getElementById("para").innerHTML = user.loc;Prueba ver‹/›
Este ejemplo utiliza set locLa propiedad comoubicaciónValor de la propiedad:
// Crear un objeto var user = { nombre: "Seagull", apellido: "Anna", edad: 22, ubicación: "New Delhi", set loc(x) { this.location = x; } ; // Uso de setter para establecer propiedades del objeto user.loc = "Goa"; // Mostrar datos de un objeto document.getElementById("para").innerHTML = user.location;Prueba ver‹/›
Los siguientes dos ejemplos muestran la diferencia entre function y getter:
//Crear un objeto var user = { nombre: "Seagull", apellido: "Anna", edad: 22, ubicación: "New Delhi", fullName: function() { return this.firstName + " " + this.lastName; } ; // Mostrar datos de un objeto document.getElementById("para").innerHTML = user.fullName();Prueba ver‹/›
// Crear un objeto var user = { nombre: "Seagull", apellido: "Anna", edad: 22, ubicación: "New Delhi", get fullName() { return this.firstName + " " + this.lastName; } ; //Mostrar datos de un objeto document.getElementById("para").innerHTML = user.fullName;Prueba ver‹/›
Ejemplo1 Tome fullName comoFunciónAcceso: user.fullName().
Ejemplo2 Tome fullName comoPropiedadAcceso: user.fullName.
Uso de getters y setters:
Ofrece una sintaxis más simple
Permite que la sintaxis de las propiedades y métodos sea la misma
Asegura una mejor calidad de datos
Es muy útil para el procesamiento en el back-end
El método Object.defineProperty() también se puede usar para agregar getters y setters.
Object.defineProperty(object, property, {value : value})
Vamos a usar el objeto "contador" como ejemplo:
var counter = {i : 0}; Object.defineProperty(counter, "increment", { get: function() {this.i++;} }); Object.defineProperty(counter, "decrement", { get: function() {this.i--;} }); Object.defineProperty(counter, "reset", { get: function() {this.i = 0;}, }); Object.defineProperty(counter, "add", { set: function (value) {this.i += value;} }); Object.defineProperty(counter, "subtract", { set: function (value) {this.i -= value;} }); counter.reset; counter.add = 25; counter.increment;Prueba ver‹/›