Как переопределить/перезагрузить метод в javascript?

Как переопределить/перезагрузить метод updateButton
/**
	 * AddToCartHandler class.
	 */
	var AddToCartHandler = function() {
		$( document )
			.on( 'click', '.add_to_cart_button', this.onAddToCart )
			.on( 'added_to_cart', this.updateButton )
			.on( 'added_to_cart', this.updateCartPage )
			.on( 'added_to_cart', this.updateFragments );
	};

	/**
	 * Update cart page elements after add to cart events.
	 */
	AddToCartHandler.prototype.updateButton = function( e, fragments, cart_hash, $button ) {
		$button = typeof $button === 'undefined' ? false : $button;

		if ( $button ) {
			$button.removeClass( 'loading' );
			$button.addClass( 'added' );

			// View cart text.
			if ( ! wc_add_to_cart_params.is_cart && $button.parent().find( '.added_to_cart' ).length === 0 ) {
				$button.after( ' <a href="' + wc_add_to_cart_params.cart_url + '" class="added_to_cart wc-forward" title="' +
					wc_add_to_cart_params.i18n_view_cart + '">' + wc_add_to_cart_params.i18n_view_cart + '</a>' );
			}

			$( document.body ).trigger( 'wc_cart_button_updated', [ $button ] );
		}
	};

	/**
	 * Init AddToCartHandler.
	 */
	new AddToCartHandler();
  • Вопрос задан
  • 471 просмотр
Решения вопроса 1
evgeniy8705
@evgeniy8705
Повелитель вселенной
// В JS нет перегрузки методов...
// Можно только переопределить его
class Super {
  constructor() {
    // some code
  }

  method(a) { // Super.prototype.method
    // some code
  }
}

class Sub extends Super {
  constructor() {
    super();
  }
  
  method(a, b) { // overriding
    // another some code
  }
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@HalcheSM
jQuery(document.body).on('wc_cart_button_updated', function( $e, $button ) {
   console.log( $button )
} )
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы