Javascript使用来自其他脚本的新键扩展对象
如何扩展从另一个脚本提交更多密钥的对象 所以我有这个require主脚本,在这里我创建了一个通用对象,我将在整个项目中使用它 现在我拥有的另一个脚本是创建基本的项目信息,我希望它也能包含在这个主对象中 因此,我的require main.js如下所示:Javascript使用来自其他脚本的新键扩展对象,javascript,requirejs,javascript-objects,Javascript,Requirejs,Javascript Objects,如何扩展从另一个脚本提交更多密钥的对象 所以我有这个require主脚本,在这里我创建了一个通用对象,我将在整个项目中使用它 现在我拥有的另一个脚本是创建基本的项目信息,我希望它也能包含在这个主对象中 因此,我的require main.js如下所示: //my main object var mainObj = mainObj || {}; require.config({ paths: { leaflet: './leaflet-0.7.3', bo
//my main object
var mainObj = mainObj || {};
require.config({
paths: {
leaflet: './leaflet-0.7.3',
bootstrap: './vendors/bootstrap.min',
projectInfo: './project-info'
},
shim: {
'bootstrap': {
deps: ['projectInfo'],
export: 'bootstrap'
},
}
});
define(['projectInfo'], function(projectInfo) {
'use strict';
mainObj = {
//HERE I NEED THE PROJECTINFO OBJECTS
projection: projectInfo.projection,
version: projectInfo.projection
};
}))
以下是带有projectInfo的脚本:
(function (root, factory) {
if (typeof define === 'function' && define.amd) {
define([], factory);
} else if (typeof exports === 'object') {
module.exports = factory();
} else {
factory( root );
}
}(this, function () {
return {
projection: {
type: 'EPSG:4326',
proj4: '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs',
resolutions: [1024, 512, 256, 128, 64, 32, 16, 8, 4, 2, 1, 0.5],
tilesMap: 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
tilesSat: 'http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}'
},
version: '0.0.1'
};
}));
这是可行的,但是我不想手工“复制”信息,我宁愿用这些信息一次/一行地扩展这个mainObj
有没有一种方法可以做到这一点,而无需编写另一个脚本
提前谢谢 您可以使用下划线的函数执行此操作:
_.extend(mainObj, projectInfo);
jQuery也有一个功能:
$.extend(mainObj, projectInfo);
并且,正如Felix在下面指出的,该功能计划用于ES6,包括:
谢谢但是如果你不使用下划线怎么办?@BonifatiusK:。@BonifatiusK:你也可以使用jQuery的函数。@FelixKling:太酷了,我不知道这是ES6计划的一部分。谢谢你提到这件事。那件不错!有没有人能把上面所有的正确答案都放在一个帖子里,这样我就可以把它作为解决问题的答案?顺便说一下,我现在正在使用jQuery版本。
Object.assign(mainObj, projectInfo);