У меня есть это объявление объекта внутри модуля Angular.js
:
$scope.Stack = function () {
this.top = null;
this.size = 0;
};
И когда я вызываю метод push
этого объекта, я получаю undefined
ошибку:
$scope.Stack.push = function (data) {
return this.size;
};
Зачем?
Я не думаю, что вы делаете то, что вы действительно хотите сделать. Вы создаете функцию Stack
а затем код:
$scope.Stack.push(1)
Вызывает свойство push
для функции Stack
(которая не существует). Скорее всего, вы хотите создать экземпляр Stack
и push
на него.
var myStack = new $scope.Stack();
myStack.push(1); // Yay!
Это будет работать в большинстве случаев. Но будьте осторожны, this
динамически определяется. Я предлагаю вам прочитать об this
в MDN.