У меня есть объект вроде этого:создать объект, который расширяет другой
var source = (function(undefined) {
var o;
function s(o) {
if(!o || typeof o === 'object') {
o = o || {};
o.a = typeof o.a === 'string' ? o.a : 'A';
o.b = typeof o.b === 'string' ? o.b : 'B';
this.o = o;
}
}
s.prototype.v = function() {
// some function
};
s.prototype.x = function() {
// some function
};
return s;
})();
я хочу использовать другой подобный продлить первый.
var extender = (function(undefined) {
var o;
function e(o) {
if(!o || typeof o === 'object') {
o = o || {};
o.c = typeof o.c === 'number' ? o.c : 3;
o.d = typeof o.d === 'number' ? o.d : 4;
this.o = o;
}
}
e.prototype.y = function(m) {
// some function
};
e.prototype.z = function(m) {
// some function
};
return e;
})();
Я могу добавить this.s = new source(o);
функции и с некоторыми изменениями в мой второй объект может связать все в первый, но я думал, что может быть лучше.
Почему бы вам не назвать свою переменную 'undefined'? Это одна из самых злых вещей, которые вы можете сделать в Javascript. – Antimony
@ Anthony: No; он создает локальную переменную 'undefined', если кто-то еще устанавливает' window.undefined'. jQuery делает это. – SLaks
Зачем это проблема? И wtf почему должен кто-то установить window.undefined? –