问题标签 [data-hiding]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - JavaScript - 私人成员解释?
我从 Crockford 阅读这篇文章: http ://www.crockford.com/javascript/private.html
在他谈到私人的部分,他说:
私有成员由构造函数创建。构造函数的普通变量和参数成为私有成员。
现在,如果我在我的脚本中这样做:
我可以轻松访问通过构造函数传递的属性!有人可以更好地解释这一点,通过构造函数传递的这些变量不应该是私有的吗?
谢谢!
google-apps-script - Google表格:根据第1行中的日期隐藏列
我没有在 Excel 或 Google Sheets 中编写脚本的经验,所以我正在尝试扩展一下,看看是否有解决我的问题的方法。我们在厨房改造业务中使用 Google 表格作为每周日历。我们从左到右组织周,并在这些列中列出我们目前正在从事的工作。我想自动隐藏日期超过 4 周的所有列,所以当工作表打开时,我们不是从一年前的日期开始的。我可以每周手动隐藏这些列,但是当我确实需要返回查看前几周时,我不得不取消隐藏所有这些列,然后突出显示我想要重新隐藏的所有列。拥有一个脚本似乎是更好的解决方案。
有没有办法在每次打开文件时运行脚本,这样我们总是只显示前 4 周和未来的所有内容?如果是这样,您是否愿意帮助我了解我如何编写它并使其工作?同样,当涉及到公式以外的任何内容时,我还是个新手,但对了解有关脚本功能的更多信息非常感兴趣。
谢谢!
javascript - Javascript中的封装/数据隐藏?
我想了解 JavaScript 中封装的概念,以及如何使我的属性和方法公开或私有。
我正在玩这个例子:
因此,变量var name
和var age
是私有的。要访问它们,我通过.this
引用使用公共方法。因此,var
我的函数内部的任何内容都是私有的,而.this
我的对象内部的任何内容在外部都是可见的。
我想这是因为 person 是可见的,所以它暴露了它的所有属性。
我在正确的轨道上吗?这是隐藏或公开您的属性/方法的正确方法吗?
还有一个问题,为什么会console.log(jack.getAge());
抛出错误?当引用我“存储”在变量中的函数时,我应该把 () 放在那个函数的末尾,它是双向的,所以我不知道有什么用?
谢谢!
c++ - 当全局函数需要指向 impl 的指针时,如何防止 impl 详细信息出现在头文件中?
我在我的代码中大量使用pimpl 习惯用法,主要是为了减少编译时间。
我有一种情况,我正在调用 C 库。我有一个 C++ 包装类,它有它的接口,而且血淋淋的细节都在impl
,当然:
在 cpp 文件中,我必须向 C 库注册一个回调,并在其中给它一个指针。我想将此函数调用转发给相应的成员函数。客户端(即这个函数的用户)根本不需要知道这个细节:
问题是它some_class::impl
被宣布为私有。我只能想到不完美的解决方案:
class impl;
在头文件中公开。这并不理想,因为它确实应该是private
——它恰好是一个非类函数需要看到的实现细节。- 放入
from_c_func
头文件,friend
就可以了。这并不理想,因为它的实现细节some_class
正在泄漏。更改实现可能需要更改头文件,然后重新编译很多不需要重新编译的东西,这会让我不高兴。 - 给自己
from_c_func
一个指针some_class
,然后调用一个函数some_class
。这需要将该函数放在头文件中,这又是一个实现细节 -public
无论如何非朋友函数都必须调用它。
该怎么办?到目前为止,我最好的选择似乎是#1,但有没有更好的方法?
java - JAVA - 抽象
我对java中的抽象有点困惑。
我检查了许多页面,说明抽象是数据隐藏(隐藏实现)。
我对抽象的理解是它是“部分实现”。只需在抽象类/接口中定义您需要的内容,然后扩展/实现它们并添加您自己的功能。
我不明白这是如何隐藏数据?实现类/接口后,您将可以访问代码,并根据需要对其进行修改。
我已经检查了很多关于此的问题和文章,但仍然对此感到困惑。
任何帮助表示赞赏。谢谢。
java - 静态变量是否继承
我已经在 1000 个位置读到静态变量没有被继承。但是,这段代码如何正常工作?
父类.java
子.java
此代码打印“父母”。
还可以在几个位置阅读数据隐藏的概念。
父类.java
子.java
现在输出是“孩子”。
那么这是否意味着静态变量是继承的,但它们遵循数据隐藏的概念?
python - 为什么数据隐藏是 OOP 的关键部分,而不是命令式或函数式编程?
它是否也用于其他编程范例?什么时候和什么时候不使用它的一个很好的例子是什么?
limits - 速记 - 有什么限制?
我正在做一个速记项目,我设法在封面图像文件中隐藏了一个文本、图像、声音文件。但是,我想知道是否可以将这三者结合起来,以 9 个文件结尾,每个文件中都有隐藏数据。
但是,我遇到了文本文件的问题。我知道在 cmd 行上你可以这样做:notepad new.txt:pass 这将允许你有效地隐藏文本中的文本,但这可以作为速记吗?
另外-是否可以在文本中隐藏 jpeg/mp3?
java - 在第一页使用不同的表头
我正在使用 iText 并创建一个动态表,该表在方法中有一个重复出现的标题createTabularHeader
:
然而,在第一页我想显示不同的信息。(但表结构/大小保持不变)
由于以不同方法获得的动态内容,我不能说新页面何时开始。
我尝试了最原始的变体——只是在文本上添加一个白色矩形并插入不同的文本。因为它只是在第一页上,所以我要做的就是在两种方法之间创建那个矩形。但是白色矩形没有任何不透明度,不能覆盖任何东西。
然而,通过尝试,我找到了 writer.getDirectContent().setColorStroke(BaseColor.WHITE);
将文本设置为白色的方法。后来我只是BaseColor
手动将我的单元格设置为黑色。但是,即使在调用 my createTabularHeader
-method 之后应用了新文本,它的图层也在原始文本的图层之下,并且字母部分覆盖了新文本。
使用如何在 PDF 中插入不可见文本的答案?使我想到使用的想法myPdfContentByte.setTextRenderMode(PdfContentByte.TEXT_RENDER_MODE_INVISIBLE);
并没有太大帮助,因为无论我做什么,它都只会在第二页重置,并且第一页上的常规文本保持不可见。
我找不到合适的解决方案...如何仅在第一页修改表头?
c++ - 信息隐藏VS封装
我们知道封装将数据成员和成员函数绑定到有界范围内。现在任何必须对数据(例如私有数据)进行更改的人都必须进入类的范围内。所以当我们谈论数据隐藏时,我们可以说公共成员的范围是全球性的吗?因为他们可以在任何地方访问。如果是,那么它是否违反了封装规则(在哪个范围内有界)?