我在Angular.js
模块中声明了一个对象:
$scope.Stack = function () {
this.top = null;
this.size = 0;
};
当我调用该对象的push
方法时,我得到undefined
错误:
$scope.Stack.push = function (data) {
return this.size;
};
为什么?
答案 0 :(得分:1)
我不认为你正在做你真正想做的事。您正在创建一个名为Stack
的函数,然后是代码:
$scope.Stack.push(1)
在push
函数上调用Stack
属性(该函数不存在)。您更有可能想要创建Stack
的实例并在其上调用push
。
var myStack = new $scope.Stack();
myStack.push(1); // Yay!
这在大多数情况下都有效。但请注意this
是动态定义的。我建议你阅读this
at MDN。