代码之家  ›  专栏  ›  技术社区  ›  problème0123

修改函数变量中的变量[重复]

  •  1
  • problème0123  · 技术社区  · 6 年前

    我想知道如何在匿名函数中访问和修改变量a,我试图放置箭头,但我在浏览器中得到:未定义

     import * as Konva from 'konva';
    
    export class classTest {
    
        public a: number;
    
        access(){ 
    
            var stage = new Konva.Stage({ container: 'container', width: 400, height: 250 });
    
            var layer1 = new Konva.Layer();
            var imageObj = new Image();
            var self = this
            imageObj.onload = function () {
    
                self.a = 150
    
                var yoda = new Konva.Image({
                    x: 50,
                    y: 50,
                    image: imageObj,
                    width: 106,
                    height: 118
                });
                layer1.add(yoda);
                //stage.add(layer1)
    
            };
            imageObj.src = '/assets/images/yoda.jpg';
            //console.log(a)
    

    如果我在第1层中加上一个宽度为a的矩形,它将和你解释的一样(我得到一条线),我该怎么做。

            var box = new Konva.Rect({
                x: 20, y: 20,
                width: this.a, 
                height: 50,
                fill: '#00D2FF', stroke: 'black',
                strokeWidth: 4
           });
    
           stage.add(layer1)
        }
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   ZeroCho    6 年前

    console.log(this.a);

    执行时间早于

    imageObj.onload

    所以你才会 undefined

    图像对象加载 一切正常。