He estado usando javascript durante años y estoy ampliando mi conocimiento, pero no entiendo el comportamiento en el siguiente código (simplificado por brevedad):
página.html
$(document).ready(function() { Modal.show('full', 'Hello World!'); });Modal.js
class Modal { show({ type, title = '' }) { var builtModal = this.build(type, title) // do something } build({ type, title }) { // do something } }En Modal.show, escriba == 'completo' y el título es correcto, pero en Modal.build (llamado desde Modal.show) escriba == indefinido y título == "". Espero que los valores se establezcan según la función de llamada... ¿Alguna idea?
En la llamada a la función, usa dos argumentos separados. Intenta cambiarlo a:
Modal.show({ type: 'full', title: 'Hello World!'});Dado que está utilizando la desestructuración en las listas de parámetros, debe pasar los objetos para desestructurarlos:
$(document).ready(function() { Modal.show({type: 'full', title: 'Hello World!'); }); class Modal { show({ type, title = '' }) { var builtModal = this.build({type, title}) // do something } build({ type, title }) { // do something } }