- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我需要以下功能。我想卡住对象的现有属性,但允许添加新属性。由于某种原因,似乎没有 Object.freezeExisting() 功能,我认为实现它可能是值得的,可以选择卡住原型(prototype)的现有属性。
我不知道该怎么做。这是一些入门代码,但这根本不正确。我不太关心性能,它只需 100% 工作即可。
Object.freezeExistingProps = function(obj, modifyProto){
Object.keys(obj).forEach(function(key){
const val = obj[key];
Object.defineProperty(obj, key , { //we simply overwrite existing prop
value: val,
writable: false, // important, I think
enumerable: true,
configurable: false
});
});
return obj;
};
但我只需要对上述内容进行健全性检查。我还需要一些关于如何沿着原型(prototype)链前进并在弄乱实际的 Object.prototype 之前以某种方式停止的信息。
最佳答案
您可以轻松实现setIntegrityLevel algorithm无需自己阻止扩展:
Object.freezeExisting = function(o) {
for (const key of Reflect.ownKeys(o)) {
const desc = Object.getOwnPropertyDescriptor(o, key);
if (!desc)
continue;
if ("value" in desc)
Object.defineProperty(o, key, {configurable: false, writable: false});
else
Object.defineProperty(o, key, {configurable: false});
}
return o;
};
关于javascript - 实现 Object.seal、Object.freeze、Object.preventExtensions 的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37387077/
我正在使用 Simple Encrypted Arithmetic Library (SEAL)来自 Microsoft 密码学研究组的库。有没有办法获取seal::Ciphertext variab
下面的代码片段是有效的 public class BaseClass { public virtual void Display() { Console.WriteLine("
当当前类曾经从父类(super class)继承时,为什么我们要在方法或属性上使用 sealed 关键字?假设我们创建了一个类,并且倾向于将它的一个或多个方法暴露给对象用户,但根本不让它被继承,并使用
我试图阻止我的基类派生其方法之一,但似乎不可能以我喜欢的方式进行,我认为我做错了。 你能帮忙吗? :)我真的很想成功使用 sealed 关键字! 这里有一些代码: public class BaseC
我有一种情况想要解释编译器的行为。给出一些代码: interface IFoo { T Get(); } class FooGetter : IFoo { public int Get
A 是来自引用的 dll 的类,因此无法更改。它有一个方法 Foo(),在我的 DoFoo() 方法中调用(将 A 作为参数)。我想在不执行 Foo() 的情况下测试 DoFoo(),因为它很昂贵并且
我认为 sealed 应该包含在 C# 语言的访问修饰符列表中。有人可以告诉它被排除在外的原因吗? 最佳答案 它不是访问修饰符,它与一个类是否可以继承有关... 关于c# - 为什么 sealed 关
假设我计算了 2 的加法 或乘法 Ciphertexts并将结果放入第三个。如果我想对我的结果执行额外的数学运算 Ciphertext (目的地 Chipertext ),是否建议使用 evaluat
我正在使用 PySEAL库,它是 Microsoft SEAL 的一个分支同态加密库,用于在加密数据上实现机器学习算法。为此,我需要除以数字。在examples.py源代码中有执行加法、减法和乘法的示
我的 SEAL v2.3.1 中有这些 SEAL 设置: seal::EncryptionParameters parms; parms.set_poly_modulus("1x^2048 + 1")
A) 我无法理解这些设置之间的关系: parms.set_poly_modulus("1x^2048 + 1"); parms.set_coeff_modulus(coeff_modulus_128(
虽然我知道出于安全原因可以使用 sealed,但有些人在叶节点上使用 sealed 关键字作为优化技术。 这对优化有何帮助?为什么编译器不够聪明,无法自己解决这个问题? 最佳答案 假设您有一个在叶类中
我想模拟类似固定对象的东西,这样就不能向对象添加新成员。 Object.seal(Obj) 似乎是正确的方法,但当我尝试创建新成员时它并没有抛出异常。成员没有被创建,但它悄无声息地发生。 var O
我对密文和最后的正方形进行了一系列计算。问题是,即使有足够的噪声预算来执行平方和重新线性化(在操作之前和之后),当我解密它时,我也会得到不正确的结果。 奇怪的是,如果我解密和解码,然后在新的密文中再次
这个问题在这里已经有了答案: Is the sealed command c++ 0x or is it only microsoft who has it (3 个答案) 关闭 5 年前。 考虑以
我正在玩 java 15 中的预览密封类,我想知道为什么关键字 sealed 和 non-sealed 只适用于类和接口(interface),而不适用于方法(像其他修饰符一样)。我想具体决定哪些方法
我正在使用 FunKTiale 库执行模式匹配。然后,当我按如下方式初始化变量时: private lateinit var socket = Option.None 下面的转换是不可能的: sock
我有一个抽象类,继承时需要重写 3 个方法。但我真的很想密封另一种方法,这样它就不会被覆盖。它包含整个类工作的重要逻辑,我希望避免用户通过在他/她不应该做的地方进行覆盖来终止功能。 有办法实现这一点吗
Iron.seal 无法更新 npm 模块 Iron,这就是我在登录用户时遇到此问题的原因 var obj = { a: 1, b: 2, c: [3, 4, 5],
我正在编写一个绘制图形的脚本。我希望该图形保持完整,直到用户手动关闭它(例如单击十字)。 如果用户在 Matlab 提示符下发出绘图命令,这不应影响现有图形,但会自动打开一个新图形。 如何在 Matl
我是一名优秀的程序员,十分优秀!