【问题标题】:Undefined Variable in Node.js local functionNode.js 本地函数中的未定义变量
【发布时间】:2017-02-15 10:18:08
【问题描述】:

我只是想问一下,为什么我的函数变量给出了一个未定义的值,但我却正确地为它赋值。这是我的代码。

server.js 代码

var express = require('express');

var app = express();

var server = app.listen(process.env.PORT || 3000, listen);

function listen() {
  var host = server.address().address;
  var port = server.address().port;
  console.log('Example app listening at http://' + host + ':' + port);
}

function asd(width, height){
  this.width = width;
  this.height = height;
}

app.use(express.static('public'));

var io = require('socket.io')(server);

io.sockets.on('connection',

  function (socket) {
  
    console.log("We have a new client: " + socket.id);

    socket.on('display',
      function(data){
        asd(data.width, data.height);
        console.log(asd.width);
      }

      );
    
    socket.on('disconnect', function() {
      console.log("Client has disconnected");
    });
  }
);

sketch.js 代码

var circle;
var circles = [];
var zoom = 1;
var newZoom;
var socket;

function setup() {
  socket = io.connect('http://localhost:3000');
  createCanvas(1366, 666);
  circle = new Circle(0, 0, 64);

  var data = {
    width: 1366,
    height: 666
  };

  socket.emit('display', data);

}

function draw() {
  background(60);
  translate(width / 2, height / 2);
  newZoom = (64 / circle.radius*1.5);
  zoom = lerp(zoom, newZoom, 0.1);
  scale(zoom);
  translate(-circle.position.x, -circle.position.y);

  for (var x = circles.length - 1; x >= 0; x--) {
    if (circle.eat(circles[x])) {
      circles.splice(x, 1);
    }
  }

  circle.show();
  circle.update();
  circle.constrain();


  for (var x = 0; x < circles.length; x++) {
    circles[x].show();
  }
}

我尝试在控制台日志中直接输出 data.width 并且那里有数据。请帮忙。

【问题讨论】:

  • 哪个变量未定义?
  • @heidarMostafa asd.width

标签: javascript node.js p5.js


【解决方案1】:

您没有在 asd 上调用 new 来创建对象。相反,您将其用作基本功能。

试试这个;

socket.on('display',
      function(data){
        var myObject = new asd(data.width, data.height);
        console.log(myObject.width);
      }
);

【讨论】:

    猜你喜欢
    • 2016-06-16
    • 1970-01-01
    • 2014-12-28
    • 1970-01-01
    • 2015-05-21
    • 1970-01-01
    • 2018-07-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多