Typecript中AngularJS控制器的实例与原型方法

时间:2015-01-05 10:22:25

标签: javascript angularjs typescript

如果我不打算继承我的控制器类,那么将AngularJS Controller的方法定义为实例方法的原型方法是否有任何区别?

来自C#背景,我更熟悉定义原型方法。我也喜欢保持构造函数的简短。

但是,我在AngularJS中看到的大多数示例都是在实例级定义方法。

module Test {
    angular
        .module("app")
        .controller("controller",
        ["$scope", MyController]);

    export class MyController {

        public Function1: () => {}

        constructor(private $scope: IMyScope) {
            //instance
            this.Function1() = () => {
                alert("Hello 1!");
            }
        }
    }

    //prototype
    public Function2(): void {
        alert("Hello 2!");
    }

}

1 个答案:

答案 0 :(得分:1)

  

如果我不打算继承我的控制器类,那么将AngularJS Controller的方法定义为实例方法的原型方法是否有任何区别?

实例方法会对性能产生影响。除此之外,使用它们完全没问题。我只是使用原型成员。

此视频解释了您可能希望使用实例方法的原因:https://m.youtube.com/watch?v=tvocUcbCupA(主要用于捕获此内容)