Используйте метод dojo/_base/lang
.clone () в oroder, чтобы создать клон объекта obj, затем сделайте все, что захотите, до последнего, чтобы исходный объект не был затронут,
ПРИМЕЧАНИЕ: бесполезно удалять ключ proto , поскольку он определяет прототип вашего объекта, см. здесь
Нижерабочий фрагмент
require(["dojo/_base/lang"], function(lang) {
var arr = ['index', 'label', '__id', 'id', '__parent', '__proto__'];
var obj = new Object();
obj.index = "index";
obj.label = "label";
obj.__id = "1";
obj.id = "id";
obj.__parent = "__parent";
//perform clone
var colObjLength = lang.clone(obj);
colObjLength = shorten(arr,colObjLength);
console.log("Original object",obj);
console.log("Cloned object",colObjLength);
function shorten(arr, obj) {
arr.forEach(function(key) {
delete obj[key];
});
return obj;
}
});
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>