El método __defineSetter__() se utiliza para vincular la propiedad de un objeto a una función que se llamará cuando se intente establecer la propiedad especificada. Se recomienda usar la sintaxis del inicializador de objetos o la API Object.defineProperty() en lugar de este método, ya que está en desuso.
Sintaxis:
obj.__defineSetter__( prop, fun )
Parámetros: esta función acepta dos parámetros, como se indicó anteriormente y se describe a continuación:
- prop: Es una string que contiene el nombre de la propiedad para vincular a la función dada.
- diversión: es una función que se llamará cuando se intente establecer la propiedad especificada. El parámetro val de la función se puede usar para especificar un alias para la variable que contiene el valor que se intentó asignar a prop .
Valores devueltos: este método devuelve indefinido.
Los siguientes ejemplos ilustran el uso del método __defineSetter__():
Ejemplo 1: Usar el método __defineSetter__()
Javascript
let tmpObj = {}; tmpObj.__defineSetter__('setValue', function(val) { this.currentValue = val; }); obj.setValue = 10; console.log(tmpObj.setValue); console.log(tmpObj.currentValue);
Producción:
undefined 10
Ejemplo 2: uso de la forma compatible con el estándar utilizando la sintaxis del inicializador de objetos y la API Object.defineProperty()
Javascript
// Using the set operator var obj1 = { set setValue(val) { this.currentValue = val; } }; obj1.setValue = 10; console.log(obj1.setValue); console.log(obj1.currentValue); // Using Object.defineProperty var obj2 = {}; Object.defineProperty(obj2, 'value', { set: function(val) { this.currentValue = val; } }); obj2.value = 2; console.log(obj2.value); console.log(obj2.currentValue);
Producción:
undefined 10 undefined 2
Publicación traducida automáticamente
Artículo escrito por thacker_shahid y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA