从JavaScript中的函数复制对象时遇到问题。
我有脚本:
var _img;
fabric.Image.fromURL('phone.png', function(img){
img.setWidth(320);
img.setHeight(615);
img.setLeft(0);
img.setTop(0);
canvas.insertAt(img, 0);
img.set('evented', false);
_img = Object.assign({}, img);
console.log(_img);
});
console.log(_img);
问题是,第二个console.log
结果是undefined
。我想将对象从img
复制到_img
。如何以正确的方式做到这一点?
谢谢。
修改: 谢谢。我从这里找到了解决方案:How do I return the response from an asynchronous call?。现在我可以从异步调用中获取返回值,这里是代码:
function addImage(callback){
fabric.Image.fromURL('phone.png', function(img){
callback (img);
});
}
var _img;
addImage(function(result){
_img = result;
console.log(_img); // result is ok
})
console.log(_img); // result still undefined
但是,我仍然可以将result
传递给_img
对象。我该怎么办?