相关疑难解决方法(0)

在JavaScript中深度克隆对象的最有效方法是什么?

克隆JavaScript对象的最有效方法是什么?我已经看到obj = eval(uneval(o));被使用,但这是非标准的,只有Firefox支持.

我做过类似的事情,obj = JSON.parse(JSON.stringify(o));但质疑效率.

我也看到了具有各种缺陷的递归复制功能.
我很惊讶没有规范的解决方案.

javascript clone object

5181
推荐指数
48
解决办法
189万
查看次数

javascript - 冻结构造函数原型的副作用

我注意到冻结构造函数的原型有副作用,基本上破坏了构造函数链接:

function A(x) {
    this.x=x;
}

function B(x, y) {
    A.call(this, x);
    this.y=y;
}
B.prototype = new A();
Object.freeze(B.prototype);
b=new B(1,2)
// I expected b.x to be 1 here but it's undefined
Run Code Online (Sandbox Code Playgroud)

这是一个演示问题的小提琴:

http://jsfiddle.net/jhpxv20b/2/

有没有一个很好的理由为什么bx最终未定义?

如果这不是一个bug,那么x2如何在小提琴中是1?

javascript prototype freeze

7
推荐指数
1
解决办法
528
查看次数

Object.defineProperty 与 vanilla 属性

考虑到基本的使用场景,做

foo.bar = 'baz';
Run Code Online (Sandbox Code Playgroud)

Object.defineProperty(foo, 'bar', {
  value: 'baz',
  configurable: true,
  enumerable: true,
  writable: true
});
Run Code Online (Sandbox Code Playgroud)

在支持的浏览器中表现完全相同?

我们是否可以仅仅因为有利的语法而在 ES6 之前的应用程序中回退到 vanilla,或者将它们混合在一起而没有任何副作用?

javascript defineproperty

6
推荐指数
1
解决办法
583
查看次数

标签 统计

javascript ×3

clone ×1

defineproperty ×1

freeze ×1

object ×1

prototype ×1