我正在研究一个迷你游戏项目,目的是学习javascript,节点等。我是所有这些的新手,我想知道如何以正确的方式创建原型,尤其是使用requireJS。我读的关于它和模块等越多,我就越困惑;-)例如
如何以括号表示法编写我喜欢的下面的Object,因为它可以节省很多"这个"并使我更具可读性......
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继承正确的方法。
非常感谢。
答案 0 :(得分:0)
要使用对象作为原型(而不是第一个示例中的构造函数原型),请使用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');