如何使用.bind()来限制这个值呢?

时间:2015-06-29 11:31:00

标签: javascript angularjs binding

这可能是一个愚蠢的问题,但我可以在以下情况下使用哪种模式来使用 bind 方法在下面的代码中将方法内的的值绑定下来。

'use strict';

exports.service = function() {
    this.colors = [];
    this.years = [];
    this.trims = [];
    var scope = this;

    this.setColors = function(colorsArr) {
        scope.colors = colorsArr;
    };

    this.setYears = function(yearsArr) {
        scope.years = yearsArr;
    };

    this.getVehicleDetails = function() {
        return {
            colors: scope.colors,
            years: scope.years
        };
    };

    this.getTrims = function() {
        return trims;
    };
};

1 个答案:

答案 0 :(得分:0)

请参阅所有方法的bind。然后你可以在所有内部方法中使用this

'use strict';

exports.service = function() {
    this.colors = [];
    this.years = [];
    this.trims = [];

    this.setColors = function(colorsArr) {
        this.colors = colorsArr; // Use this here
    }.bind(this); // Change of context

    this.setYears = function(yearsArr) {
        this.years = yearsArr; // Use this here
    }.bind(this); // Change of context

    this.getVehicleDetails = function() {
        return {
            colors: this.colors, // Use this here
            years: this.years // Use this here
        };
    }.bind(this); // Change of context

    this.getTrims = function() {
        return this.trims; // Use this here
    }.bind(this); // Change of context
};