首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在angularjs服务中获取或设置数据时使用函数的意义是什么?

在angularjs服务中获取或设置数据时使用函数的意义是什么?
EN

Stack Overflow用户
提问于 2019-07-11 09:16:34
回答 1查看 33关注 0票数 0

我正在学习如何在AngularJS服务中存储API调用响应数据。在我看到的所有示例中,人们使用服务中的函数来获取或设置值。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
app.factory('dataFactory', function() {
    let dataFactory = {};
    let info;

    dataFactory.setInfo = function(value){
        info = value;
    }

    dataFactory.getInfo = function(){
        return info;
    }

    return dataFactory;
});

但是我意识到,我可以获得和设置服务中的变量值,而无需使用任何函数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
app.factory('dataFactory', function() {
    let dataFactory = {};
    let dataFactory.info;
});

// Now I can get or set the value of this in my controller

app.controller('myCtrl', [dataFactory, function(dataFactory) {
    dataFactory.info = "Value"; // setting the value
    let test = dataFactory.info; // getting the value
}])

我想知道我的做法是否可能导致任何问题。这是否被认为是一种糟糕的做法,如果是,为什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-11 12:51:52

与直接公开属性相比,对数据访问器(getter和setter)的偏好既不特定于AngularJS,也不特定于JavaScript。通常是面向对象编程中的一种常见做法。

与直接访问属性相比,更喜欢getter和setter的主要原因之一是数据封装。当数据被定义为服务函数(let info;)的词法环境中的局部变量时,不可能从外部(例如从控制器)访问它。

数据访问器还为您提供了添加数据访问逻辑的灵活性。例如,您可能希望在调用getter时实现一些检查,并作出是否返回数据的决定。同样,在setter中,您可以验证数据(使用setter调用)是否满足要求,如果没有,则抛出一个错误。

此外,您可能希望检查this answer,以查看getter和setter可能提供的许多其他好处。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56994346

复制
相关文章
数据埋点是什么?设置埋点的意义是什么?
我们先看看无论是APP还是H5都会关注的指标,了解这些指标的计算方法的细微差异以及复杂性,换个角度来思考埋点的意义。【源自:精通Web Analytics 2.0】
沙漠尽头的狼
2022/04/18
2.4K0
数据埋点是什么?设置埋点的意义是什么?
深度学习中【激活函数】存在的意义是什么?
在深度学习网络中,我们经常可以看到对于某一个隐藏层节点的激活值计算一般分为两步,如下图:
ShuYini
2019/09/02
2.3K0
深度学习中【激活函数】存在的意义是什么?
angularjs中设置select的选中项
最近用angularjs比较多,里面有很多自己的方法,都不咋会用,这篇只是个笔记,防止自己忘记
庞小明
2019/07/08
3.2K0
如何解决在DLL的入口函数中创建或结束线程时卡死
通常情况下并不会使用到DLL的MAIN函数,因为delphi的框架已经把Main函数隐藏起来
战神伽罗
2019/07/24
3.8K0
如何解决在DLL的入口函数中创建或结束线程时卡死
[TCP/IP] TCP在listen时的参数backlog的意义
linux内核中会维护两个队列:   1)未完成队列:接收到一个SYN建立连接请求,处于SYN_RCVD状态   2)已完成队列:已完成TCP三次握手过程,处于ESTABLISHED状态   3)当有一个SYN到来请求建立连接时,就在未完成队列中新建一项。当三次握手过程完成后,就将套接口从未完成队列移动到已完成队列。   4)backlog曾被定义为两个队列的总和的最大值,Berkely实现中的backlog值为上面两队列之和再乘以1.5。   5)如果当客户端SYN到达的时候队列已满,TCP将会忽略后续到达的SYN,但是不会给客户端发送RST信息,因为此时允许客户端重传SYN分节。如果启用syncookies (net.ipv4.tcp_syncookies = 1),新的连接不进入未完成队列,不受影响 6)backlog 即上述已完成队列的大小, 这个设置是个参考值,不是精确值. 内核会做些调整
唯一Chat
2019/09/10
1.2K0
[TCP/IP] TCP在listen时的参数backlog的意义
nuScenes数据集在OpenPCDet中的使用及其获取
从官方网站上下载数据NuScenes 3D object detection dataset,没注册的需要注册后下载。 注意: 如果觉得数据下载或者创建data infos有难度的,可以参考本文下方 5.
烤粽子
2021/10/08
5.5K0
python中星号的意义(**字典,*列表或元组)
传递实参和定义形参(所谓实参就是调用函数时传入的参数,形参则是定义函数是定义的参数)的时候,你还可以使用两个特殊的语法:*、** 。 调用函数时使用* ,** test(*args)中 * 的作用:其实就是把序列 args 中的每个元素,当作位置参数传进去。比如上面这个代码,如果 args 等于 (1,2,3) ,那么这个代码就等价于 test(1, 2, 3) 。 test(**kwargs)中** 的作用:则是把字典 kwargs 变成关键字参数传递。比如上面这个代码,如果 kwargs 等于 {
用户1214487
2018/01/24
3.7K0
AngularJS 中的Promise --- $q服务详解
先说说什么是Promise,什么是$q吧。Promise是一种异步处理模式,有很多的实现方式,比如著名的Kris Kwal's Q还有JQuery的Deffered。 什么是Promise 以前了解过Ajax的都能体会到回调的痛苦,同步的代码很容易调试,但是异步回调的代码,会让开发者陷入泥潭,无法跟踪,比如: funA(arg1,arg2,function(){ funcB(arg1,arg2,function(){ funcC(arg1,arg2,function(){
用户1154259
2018/01/17
1.5K0
【MYSQL函数】MYSQL中IF函数在where中的使用
WHERE IF(条件, true执行条件, false执行条件) 业务需求: 查询SUPPLIER_CLASS=0 and tp1.`TYPE_FLAG` = 1 或者 SUPPLIER_CLASS=1 实现有两种:
用户5640963
2019/07/25
12.3K0
在Linux中设置RAID 10或1 + 0(嵌套)
RAID 10是结合RAID 0和RAID 1,形成了RAID 10。要设置RAID 10,我们至少需要4个磁盘。 在我们以前的文章中,我们已经了解了如何设置RAID 0和RAID 1,最少2个磁盘。
用户2323866
2021/06/18
1.9K0
旅行的意义是什么?
* 所有的事情都靠亲身感知,就太慢了 旅行是其中一种,有些时候他人告知是无法领悟的
宇相
2021/05/10
3400
旅行的意义是什么?
AngularJS数据源的多种获取方式汇总
诸位看完转发一下,促进感兴趣的同学,共同交流。 在AngularJS中获取数据源的方式有很多种,本文给大家整理几种获取数据源的方式,对angularjs获取数据源的方式相关知识感兴趣的朋友一起学习吧 AngularJS 简介 AngularJS 是由 Google 发起的一款开源的前端 MVC 脚本框架,既适合做普通 WEB 应用也可以做 SPA(单页面应用,所有的用户操作都在一个页面中完成)。与同为 MVC 框架的 Dojo 的定位不同,AngularJS 在功能上更加轻量,而相比于 jQuery,An
前朝楚水
2018/04/02
8400
AngularJS 路由--设置对象
$routeProvider.when 函数的第一个参数是 URL 或者 URL 正则规则,第二个参数为路由配置对象。
陈不成i
2021/07/26
9540
在 React 应用中获取数据
可以说 React 是构建 web 应用最流行的库。然而,它并不是全能的 web 框架。它只关注 MVC 中的 view 模块。
前端达人
2018/10/18
8.4K0
在 React 应用中获取数据
检索或设置系统信息的API函数
用户2135432
2023/10/21
1410
在Kubernetes环境中采用Spinnaker的意义
该博客的目的是帮助开发人员,架构师和商业从业人员了解采用Kubernetes环境时使用Spinnaker的重要性。您将了解:
DevOps云学堂
2020/11/26
2.6K0
在Kubernetes环境中采用Spinnaker的意义
pandas使用与思考读书的意义是什么?
最近工作中,有一个场景,是从缓存中将数据读取出来,再聚合。 当时想到了三种方案: 使用dict的方式累加 使用数据库的临时表进行数据聚合 使用pandas汇总 方式一、以前使用php写过,考虑过不优雅,就放弃了 方式二、由于数据多,每次处理都要先写入数据库,然后再聚合,有点耗时,这方式也在线上测试了, 时间确实比较久。 所以采用了第三种方案: 我先贴出我的代码: 为了,剔除敏感信息,我做了混淆和简化 def sync_data_to_db(): """ 将缓存中的数据聚合后,持久化到db
若与
2018/06/06
1.4K0
在sudoers中设置pwfeedback时缓冲区溢出
当用户输入密码时, Sudo的pwfeedback选项可用于提供视觉反馈。每次按键都会打印一个星号。添加此选项是为了响应用户对标准“ 密码;"提示如何禁用按键回显的困惑.虽然在sudo的上游版本中默认情况下未启用pwfeedback,但某些系统(例如Linux Mint和Elementary OS)的确在其默认sudoers文件中启用了它.
洛米唯熊
2020/02/17
1.8K0
代价函数的意义
我们来复习上一节的知识: 假设函数: h θ ( x ) = θ 0 + θ 1 x h_\theta(x)=\theta_0+\theta_1x hθ​(x)=θ0​+θ1​x 参数: θ 0 , θ 1 \theta_0,\theta_1 θ0​,θ1​ 代价函数: J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 i = m ( h ( x i ) − y i ) 2 J(\theta_0,\theta_1)=\frac{1}{2m}\sum_{i=1}^{i=m}(h(x^i)-y^i)^2 J(θ0​,θ1​)=2m1​∑i=1i=m​(h(xi)−yi)2 目标:求得当 J ( θ 0 , θ 1 ) J(\theta_0,\theta_1) J(θ0​,θ1​)最小时的 θ 0 , θ 1 \theta_0,\theta_1 θ0​,θ1​值
全栈程序员站长
2022/08/25
3880
代价函数的意义
使用JClouds在Java中获取和发布云服务器
本文中,我们举例来说明如何使用JClouds API 获取和发布云服务器。JClouds API 可以和大量云服务提供商(包括Amazon EC2和Rackspace)协同工作并且允许使用Java代码执行大量操作。换句话说,JClouds API不是针对某些提供商所特定接口去进行交互。下面我们以Rackspace所提供的云服务为例进行说明。
小芬达
2018/01/16
6.4K1
使用JClouds在Java中获取和发布云服务器

相似问题

无法在angularjs中设置或获取服务抛出方法,而不是函数问题。

13

在创建AngularJS指令时,“ngModel”的意义是什么?

21

Angularjs函数意义

12

.save()函数在ember数据中的意义是什么?

12

获取和设置变量的意义是什么?

26
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文