2 回答
TA贡献1836条经验 获得超4个赞
您可以使用with语法,但不推荐这样做,因为
不推荐使用 with 语句,因为它可能会导致令人困惑的错误和兼容性问题。
const foo = {
data: {
user: {
name: 'Alice',
age: 18
}
}
};
with(foo.data.user) {
name = 'Bob';
age = 24;
}
console.log(foo);
TA贡献1834条经验 获得超8个赞
也许 JavaScript 中更惯用的方法是使用this和作用域:
function addVectors(vector) { // Use only the *second* argument, like [0.1, 0.1], not 'coor')
let newCoordinates = /* do same calculations as you did */
// Instead of *return newCoordinates;* at the end:
this.coordinates = newCoordinates;
}
// Approach 1:
// Now "bind" the function inside the object, so that "this" refers to it.
let objExample = {
velocity: 42,
coordinates: [1.2, 3.4],
add: addVectors,
}
// use it like this (in your foreach for instance):
objExemple.add([0.1, 0.1]);
// Approach 2:
// Use 'call' to bind the 'this' parameter to the object dynamically
// (directly in your foreach without any more changes)
addVectors.call(obj, [0.1, 0.1]);
对于您给出的示例,我会选择方法 2,需要的代码更少。
如果您在不同的地方重复使用这个“addVectors”函数,那么选择方法 1 是有意义的。
添加回答
举报