服务或工厂的角度Js构造函数

时间:2017-04-09 15:59:13

标签: angularjs

我在Angular中寻找任何构造函数类型的函数。我创建了一个服务,但它给了我一个错误。请帮助完成任务。

我的错误代码:

var app = angular.module("app1", [])

.service('NumberService', function (a) {
    this.square = function () { return a * a; };
    this.cube = function () { return a * a * a; };
})

.controller('ServiceController', ['$scope', 'NumberService',
    function ($scope, NumberService) {
        $scope.getData = function () {
            //  alert('Button clicked' );
            var n = $scope.a;
            var ns = new NumberService(n);
            $scope.Square = ns.square();
            // alert($scope.Square);
            $scope.Cube = ns.cube();
        }
    }
]);

我想将NumberService创建为Singleton类。在c ++ / java / c#:

class NumberService
{
    int a;
    public NumberService(int n){ a=n;}
    public int square(){ return a*a;}
    public in cube(){ return a*a*a;}
}

1 个答案:

答案 0 :(得分:0)

当你用.service()创建东西时,它就变成了单身。你真的不应该这样做:

var ns = new NumberService(n);

导致NumberService指向单例实例。所以就这样做:

NumberService.square(2)

为什么你希望它成为单身人士,你的数学运算是清晰的实用方法,不需要状态?