Javascript 创建“一个”的最佳方法;“实例”;在JS中
最近,在一些js游戏制作博客和网站上,我看到了一个创建某种“实例”的新约定。看起来是这样的:Javascript 创建“一个”的最佳方法;“实例”;在JS中,javascript,oop,Javascript,Oop,最近,在一些js游戏制作博客和网站上,我看到了一个创建某种“实例”的新约定。看起来是这样的: var newCharacter = function (x, y) { return { x: x, y: y, width: 50, height: 50, update: function () { //do update stuff here } }; };
var newCharacter = function (x, y) {
return {
x: x,
y: y,
width: 50,
height: 50,
update: function () {
//do update stuff here
}
};
};
var myCharacter = newCharacter(20, 30); //create "instance"
与传统方式相反:
var Character = function (x, y) {
this.x = x;
this.y = y;
this.width = 50;
this.height = 50;
this.update = function () {
//do update stuff here
};
};
var myCharacter = new Character(20, 30); //create intance
我很好奇使用第一种方法的好处是什么。它是更高效、更语义,还是更快?如果我没有弄错的话,第二节中的“new”在堆上为实例分配空间,这与第一节中没有分配其他空间相反,因此我想知道第一节应该只用于静态类还是单实例类?不要想当然,我也在问自己,这两种语言之间的区别是什么?这两种语言大致相同,或者在速度方面差异非常小,传统的方式更常见,因为更接近其他语言,因此我建议。如果你想提高效率,你也可以使用原型。我不推荐第一种方法,新的
操作符存在是有原因的。第一种方式可能会遇到继承问题。您有时间谈谈原型继承吗正如斯宾塞所说,我强烈建议使用原型遗传。这样,每个实例上只有属性和对原型上方法的引用,这意味着更少的内存使用。您可以在此处阅读: