Javascript 对象括号表示法和 requirejs

Javascript object bracket notation and requirejs

本文关键字:requirejs 表示 对象 Javascript      更新时间:2023-09-26

我正在做一个迷你游戏项目,目的是学习javascript,node等。我是所有这些的新手,我想知道如何以正确的方式创建原型,尤其是使用 requireJS。我读得越多,模块等,我就越困惑;-)例如

怎样才能用我更喜欢的括号符号写下面的对象,因为它可以为我节省很多"这个"并使其对我来说更具可读性......

define([],function(){
  Ball = function(){
    this.x = null,
    this.y = null,
    this.vel = null
  };
  Ball.prototype.serve = function(){};
  Ball.prototype.update = function(){};
  Ball.prototype.render = function(){};
return Ball;
});

当我用括号表示法写它时,我得到一个错误,Ball 不是一个函数。

define([],function{
  var Ball = {
    x: null,
    y: null,
    vel: null
  };
  Ball.prototype.serve = function(){};
  Ball.prototype.update = function(){};
  Ball.prototype.render = function(){};
    return Ball;
});

以及我如何使用 requrejs 继承正确的方式。

非常感谢。

若要使用对象作为原型(而不是第一个示例中的构造函数原型),请使用 Object.create

对象没有用于建立继承的 prototype 属性,当使用new调用函数时

也是如此
var Ball = {
    x: null,
    y: null,
    vel: null,
    serve: function() {},
    update: function() {},
    render: function() {}
};
var ballInstance = Object.create(Ball);

可视化这一点的一个好方法是了解

function MyClass(y) {
   this.y = y;
}
MyClass.prototype.x = 'x';
var myClass = new MyClass('yVal') 

是一回事

var myClass = Object.create(MyClass.prototype);
MyClass.call(myClass, 'yVal');