JavaScript如何获取函数内部变量

success(function(data) {
   angular.forEach(data.response.venues, function(item) {
                    var pin = {
                        latitude: parseFloat(item.location.lat),
                        longitude: parseFloat(item.location.lng),
                        title: item.name,
                        id: item.id
                    }
                    pin.options = {
                        icon: $dynamicConstants.getCdnImagesUrl() + query + '.png',
                        labelStyle: { 'overflow': 'visible' }
                    };
                    $scope.map.markers.push(pin);
                })
            }).error(function() {

            });

请问如何function(data)外获取到var pin的值?

阅读 6.4k
3 个回答

把pin定义在function(data)之外,请求到数据之后给pin赋值

可以在外面定义var pin = {};然后里面用 pin = {

                    latitude: parseFloat(item.location.lat),
                    longitude: parseFloat(item.location.lng),
                    title: item.name,
                    id: item.id
                }
                

就是外面定义,里面赋值

  1. 直接获取不到.

  2. 在这个函数里面写个闭包函数, 被外部引用到.

success(function(data) {
    angular.forEach(data.response.venues, function(item) {
        var pin = {
            latitude: parseFloat(item.location.lat),
            longitude: parseFloat(item.location.lng),
            title: item.name,
            id: item.id
        }
        pin.options = {
            icon: $dynamicConstants.getCdnImagesUrl() + query + '.png',
            labelStyle: { 'overflow': 'visible' }
        };
        $scope.map.markers.push(pin);
        

        //vvvvvvvvvvvvvvvvvv
        var getPin = function () {
            return pin;
        }
        // 被外部引用到
        window.getPin = getPin;
        //^^^^^^^^^^^^^^^^^^

    })
}).error(function() {

});

但是你这里是循环, 外部引用pin有何意义?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题