Assignment to property of function parameter 'pnode'.
时间: 2023-07-15 18:12:36 浏览: 79
这个错误通常发生在你试图修改一个函数参数的属性时。例如:
```javascript
function myFunc(pnode) {
pnode = {name: 'John', age: 25}; // 这里是赋值操作,而不是修改属性
}
function myFunc(pnode) {
pnode.name = 'John'; // 这里是修改属性
}
let person = {name: 'Alice', age: 30};
myFunc(person);
console.log(person); // 输出 {name: 'Alice', age: 30}
```
在第一个示例中,我们在函数中将 `pnode` 赋值为一个对象。这并不会修改原始对象,而只是将 `pnode` 变量指向了一个新的对象。因此,在函数外部,原始对象仍然保持不变。
在第二个示例中,我们修改了 `pnode` 对象的 `name` 属性。因为 `pnode` 变量引用的是原始对象,所以在函数外部,原始对象的 `name` 属性也被修改了。
如果你想要完全替换传入的对象,应该这样做:
```javascript
function myFunc(pnode) {
Object.assign(pnode, {name: 'John', age: 25});
}
let person = {name: 'Alice', age: 30};
myFunc(person);
console.log(person); // 输出 {name: 'John', age: 25}
```
这种方式会将传入的对象的属性全部替换为新的属性。
阅读全文