Этот пример выглядит хорошо, за исключением первой строки, в которой двоеточие должно быть знаком равенства.
Проблема, я думаю, связана с тем, как вы звоните ShipProduct
. Если вы делаете это так, все должно работать:
var customer = new Customer();
customer.ShipProduct();
Однако, если вы отсоедините метод и вызовете его напрямую, он не будет работать. Такие как:
var customer = new Customer();
var shipMethod = customer.ShipProduct;
shipMethod();
Это потому, что JavaScript использует аксессор точечной нотации для bind this
Я предполагаю, что вы передаете метод, возможно, обратному вызову Ajax или что-то в этом роде.
Что вам нужно сделать, это обернуть его в функцию. Такие как:
var customer = new Customer();
var shipMethod = function() {
customer.shipMethod();
};
... later, in some other context ...
shipMethod();