基本上,我找到了API使用某些对象文字的javascript库。我试图弄清楚如何在不同的JavaScript文件上分离它们以便于阅读。有一个文件有30个不同的功能嵌套在一个对象...我试图将它们分开。以下示例已经过简化,以表明我的观点。
BasicGame.Game.prototype = {
var1: function () { blah blah},
var2: function () { blah blah},
var3: function () { blah blah},
var4: function () { blah blah}
}
如何取出var3和var4并将它们放入另一个共享相同Basic.Game对象的对象文字中?如果我再次编写BasicGame.Game,它将覆盖原始对象文字。
答案 0 :(得分:2)
您可以在另一个文件中编写BasicGame.Game.prototype.var3 = function() { }
,但不会覆盖其中已有的功能。
例如,file1.js
:
BasicGame.Game.prototype = {
var1: function () { blah blah},
var2: function () { blah blah}
}
file2.js
:
BasicGame.Game.prototype.var3 = function () { blah blah};
BasicGame.Game.prototype.var4 = function () { blah blah};
只需确保首先包含file1.js
或对两个文件使用点符号。
答案 1 :(得分:1)
您可以使用以下代码扩充Object:
Object.defineProperty(Object.prototype, "partial", {
enumerable: false,
configurable: false,
set: function (value) {
if (value.constructor === Object) {
for (prop in value) {
if (value.hasOwnProperty(prop)) {
this[prop] = value[prop];
}
}
}
return this;
},
get: function () { return this;}
});
然后你可以使用这个扩充来为任何对象添加文字:
//first file
BasicGame.Game.prototype = {
var1: function () { alert("blah blah"); },
var2: function () { alert("blah blah"); },
}
//second file
BasicGame.Game.prototype.partial = {
var3: function () { alert("blah blah"); },
var4: function () { alert("blah blah"); }
}
var game = new BasicGame.Game();
现在 游戏 会显示所有四个属性,因为它们“闪耀”其构造函数的原型。