Javascript,通过函数的条件变量

时间:2015-04-16 14:59:45

标签: javascript angularjs

所以我试图有条件地设置一个变量。它基本上是处理第一次点击用户的情况 - 所以我想根据它有条件地设置它。我实例化了一个为我提取变量的模型,但是第一次没有实例化模型,所以我调用的函数得到了很好的结果。 undefined不是一个函数。我正在尝试的是 -

 var filterInstance = $scope.filterModel.getChecks() ? $scope.filterModel.getChecks() : {};

基本上我想要filterInstance检查$ scope.filterModel.getChecks(),如果它未定义不是函数,则将其设置为空对象,否则使用$ scope.filterModel.getChecks()。有人能指出我在正确的方向吗?谢谢!

3 个答案:

答案 0 :(得分:1)

为什么不这样做:

var filterInstance = ($scope.filterModel.getChecks && $scope.filterModel.getChecks()) || {};
这样,如果$scope.filterModel.getChecks存在且$scope.filterModel.getChecks()返回某些内容" truthy",则会在filterInstance中设置,否则它是一个空对象。

答案 1 :(得分:1)

请改为尝试:

 var filterInstance = $scope.filterModel.getChecks !== undefined ? $scope.filterModel.getChecks() : {};

答案 2 :(得分:1)

您应该检查引用该函数的属性,而不实际调用该函数。这是通过删除()

来完成的
var filterInstance = $scope.filterModel.getChecks ? $scope.filterModel.getChecks() : {};