- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
如果您使用 var obj = {};
创建一个常规的 javascript 对象,它将具有对象原型(prototype)。使用 var obj = new MyClass();
创建的对象也是如此 在引入 Object.create
之前,没有办法解决这个问题。然而,现在可以使用 var obj = Object.create(null);
创建一个没有原型(prototype)的对象(相应的 null
作为其原型(prototype))。
为什么这很重要?它带来了哪些优势?有任何现实世界的用例吗?
最佳答案
它是一个完全空的对象(没有从任何 .prototype
继承,包括 Object.prototype
),所以你可以保证任何属性查找只有在属性被显式添加到对象中。
例如,如果您想在事先不知道 key 的地方存储一些数据,则提供的 key 可能与 Object.prototype
的成员同名, 并导致错误。
在这些情况下,您需要执行显式 .hasOwnProperty()
检查以排除意外的继承值。但是如果没有任何继承,您的测试可以简化为 if (key in my_object) {
测试,或者可能是一个简单的真实测试 if (my_object[key]) {
如果合适的话。
此外,如果没有原型(prototype)链,我想查找结果不存在的属性会更快,因为只需要检查直接对象。这在现实中是否成功(由于优化)将通过性能测试来确定。
关于javascript - Object.create(null) 的用例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26961544/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!