Javascript 对象扩展语法的Mo.js替代方案
我正在学习mo.js教程,并且正在处理循环单击突发部分Javascript 对象扩展语法的Mo.js替代方案,javascript,html,google-chrome,google-chrome-devtools,Javascript,Html,Google Chrome,Google Chrome Devtools,我正在学习mo.js教程,并且正在处理循环单击突发部分 const OPTS = { fill: 'none', radius: 25, strokeWidth: { 50 : 0 }, scale: { 0: 1 }, angle: { 'rand(-35, -70)': 0 }, duration: 500, left: 0, top: 0, easing:
const OPTS = {
fill: 'none',
radius: 25,
strokeWidth: { 50 : 0 },
scale: { 0: 1 },
angle: { 'rand(-35, -70)': 0 },
duration: 500,
left: 0, top: 0,
easing: 'cubic.out'
};
const circle1 = new mojs.Shape({
...OPTS,
stroke: 'cyan',
});
const circle2 = new mojs.Shape({
...OPTS,
radius: { 0 : 15 },
strokeWidth: { 30: 0 },
stroke: 'magenta',
delay: 'rand(75, 150)'
});
我使用的是VSCode V1.7.2,它在支持…
语法时遇到问题。我在Chrome54.0.2840.99中也遇到了控制台错误。有没有一种等效的格式可以用来解决这个问题?我在想象类似于options:OPTS
的东西会起作用,但我在文档或互联网上没有看到任何帮助我的东西
显然,我可以在循环声明中复制OPTS中的属性,但是为了简单起见,我想知道如何使用OPTS变量
我会标记mo.js,但我没有足够的声誉来创建新标记
谢谢 您可以使用
Object.assign()
:
const circle2 = new mojs.Shape(Object.assign({}, OPTS, {
radius: { 0 : 15 },
strokeWidth: { 30: 0 },
stroke: 'magenta',
delay: 'rand(75, 150)'
}));
对象扩展仍然是一个建议,linter不认识语法。这并不意味着它不起作用。例如,如果您将babel与(或0、1、2个预设)一起使用,即使vscode显示警告,它也可以工作。我不熟悉vscode,但您可能可以添加对该功能的支持。您可以使用
Object.assign()
:
const circle2 = new mojs.Shape(Object.assign({}, OPTS, {
radius: { 0 : 15 },
strokeWidth: { 30: 0 },
stroke: 'magenta',
delay: 'rand(75, 150)'
}));
对象扩展仍然是一个建议,linter不认识语法。这并不意味着它不起作用。例如,如果您将babel与(或0、1、2个预设)一起使用,即使vscode显示警告,它也可以工作。我不熟悉vscode,但您可能可以添加对该功能的支持。您的订单搞错了
OPTS
应该首先保留相同的功能,但是您还需要一个空白的{}
,以避免修改OPTS
。谢谢。我还没考虑过超控,你的命令搞错了OPTS
应该首先保留相同的功能,但是您还需要一个空白的{}
,以避免修改OPTS
。谢谢。我没有考虑过超控。