Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度HttpParams到对象,object.defineProperty创建属性,但超出范围_Javascript_Angular_Typescript - Fatal编程技术网

Javascript 角度HttpParams到对象,object.defineProperty创建属性,但超出范围

Javascript 角度HttpParams到对象,object.defineProperty创建属性,但超出范围,javascript,angular,typescript,Javascript,Angular,Typescript,我试图通过基于HttpParams中的内容在对象上动态创建属性,将HttpParams转换为对象 private transformParamsToObject(params: HttpParams) { let newObject = {}; params.keys().forEach(x => Object.defineProperty(newObject, x, { value: params.get(x) })); const foo = Object.as

我试图通过基于HttpParams中的内容在对象上动态创建属性,将HttpParams转换为对象

private transformParamsToObject(params: HttpParams) {
    let newObject = {};
    params.keys().forEach(x => Object.defineProperty(newObject, x, { value: params.get(x) }));
    const foo = Object.assign({}, newObject);
    return foo;
}
从调试器中可以看到,它定义了属性,但当我将该对象分配给foo时,它们似乎不在范围内。即使我只是返回newObject,它也没有在作用域中定义属性

我觉得我可能错过了一些很简单的东西。有人能帮忙吗

,这就是为什么
Object.assign
找不到它们的原因。但是没有理由使用
对象。当您可以直接分配属性时,在此处定义属性,并且没有理由使用
对象。分配
新对象
旁边创建另一个
foo
对象。照办

private transformParamsToObject(params: HttpParams) {
    let newObject = {};
    for (const x of params.keys())
        newObject[x] = params.get(x);
    return newObject;
}

精彩的!简单多了。我只是重新分配任务来证明他们没有被设定。非常感谢他们被设置好了,只是看不见而已。