相关疑难解决方法(0)

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

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

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

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

javascript clone object

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

如何正确克隆JavaScript对象?

我有一个对象,x.我想把它复制为对象y,这样改变y就不要修改了x.我意识到复制从内置JavaScript对象派生的对象将导致额外的,不需要的属性.这不是问题,因为我正在复制我自己的一个文字构造的对象.

如何正确克隆JavaScript对象?

javascript clone javascript-objects

2922
推荐指数
42
解决办法
176万
查看次数

Angular中angular.copy的替代方法是什么

如何在Angular中复制对象并丢失其引用?

使用AngularJS,我可以使用angular.copy(object),但是我在Angular中使用它时遇到了一些错误.

EXCEPTION:ReferenceError:angular未定义

angular

124
推荐指数
8
解决办法
11万
查看次数

克隆对象TypeScript

我正在使用TypeScript处理Angular 2.我有用户管理组件,我有整个用户的表.

当单击表中的任何用户时,然后形成具有要编辑的整个属性的外观.选择用户发生事件如下:

 onUserSelected(event) {
        var selectedId = event.data.id;
        this.selectedUser = this.users.filter(user => user.id === selectedId)[0]
    }
Run Code Online (Sandbox Code Playgroud)

问题是当正在编辑selectedUser时,他的属性也会在表中发生变化而且看起来不太好.我尝试自己创建副本如下,但它没有帮助 - 用户类

 clone() {
        var cloned = new User(this.id, this.login, this.name, this.surname, this.phone);
        return cloned;
    }
Run Code Online (Sandbox Code Playgroud)

也许我正在做一些在Angular2中不好的做法?

typescript angular

19
推荐指数
3
解决办法
6万
查看次数

Angular2:通过引用传递组件之间的交互

当我们将一个model子组件传递给子组件并对其进行修改时,这些值只会反映在子组件的局部变量中,而不能用于父组件.我们可以通过引用从父到子传递值.所以这些变化也是可见的.

observable在服务层使用a实现了相同的功能.但我们不能通过参考传递@Input吗?

angular2-components angular

13
推荐指数
1
解决办法
1万
查看次数

我应该声明变量或访问对象方法吗?

哪种更好的做法,为什么?

声明一个变量:

exampleFunction(requestData: Object) {
  const username = requestData.username;

  doSomething(username);
}
Run Code Online (Sandbox Code Playgroud)

或直接访问对象属性?

exampleFunction(requestData: Object) {
  doSomething(requestData.username);
}
Run Code Online (Sandbox Code Playgroud)

如果我使用的代码超过50行并且变量被多次使用怎么办?我应该多次使用变量'username'还是多次使用'requestData.username'?

typescript angular

7
推荐指数
3
解决办法
253
查看次数

在 Typescript 中从基类创建 Child 类的新实例

我想从基类方法创建类的新实例。

这有点复杂,但我会尽力解释。

这是一个例子:

class Base(){
    constructor(){}

    clone(){
        //Here i want to create new instance
    }
}

class Child extends Base(){}


var bar = new Child();
var cloned = bar.clone();

clone instanceof Child //should be true!
Run Code Online (Sandbox Code Playgroud)

所以。从这个例子中我想克隆我的bar实例,那应该是实例Child

出色地。我正在尝试以下Bar.clone方法:

clone(){
    return new this.constructor()
}
Run Code Online (Sandbox Code Playgroud)

...这在编译代码中有效,但我有打字稿错误:

error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature.

我有什么想法可以处理这个问题吗?

谢谢。希望这对一些人有帮助1:)

javascript oop inheritance typescript

4
推荐指数
1
解决办法
8244
查看次数