это не сработает, и вы не можете заставить его работать.что происходит так: движок js пытается оценить ['not'] и получить "undefined", затем он пытается оценить свойство "существующие" неопределенного, и вы получите эту ошибку.все это происходит до вызова вашей функции ...
то, что вы можете сделать, выглядит примерно так:
var isset = function(obj, props) {
if ((typeof (obj) === 'undefined') || (obj === null))
return false;
else if (props && props.length > 0)
return isset(obj[props.shift()], props);
else
return true;
};
тогда вы вызываете это так:
var a = [];
// Test 1
alert(isset(a, ['not']);
// Test 2
alert(isset(a, ['not', 'existent']));
(** это просто псевдокод, вам может понадобиться немного его изменить, чтобы он действительно работал)