函数中声明的是局部变量,函数执行完毕,局部变量也就被释放了。setInterval("objInterval.warn('time is over', 33)", 2000); 
这样你可以理解为在函数外边执行了eval("objInterval.warn('time is over', 33)");
那么objInterval也就无效了。建议这样修改:
function testSetObjInterval(){ 
  var objInterval = new setObjInterval();
  setInterval(function() {objInterval.warn('time is over', 33);}, 2000);
}