日期:2014-05-16  浏览次数:20735 次

如何获取到alert的的显示值
是这样的
最近在用BAIDU的地图JS API搞些东西

我在对一个对象进行alert(overlays[overlays.length - 1])
时  网页上显示[object Ployline]
这里的Ployline实际上是这个对象的类型,就是地图上的线
同时地图上还有点等其他对象
我想通过判断alert的显示值进行对象类型的判断来再进一步获取属性

但是alert的显示值我如何在代码上获取到呢


我试过了其他方法
Object.prototype.toString.call(overlays[overlays.length - 1])
显示的是[object object ]
typeof()
显示的是object

------解决方案--------------------
alert是没有返回值的,所以获取不到。你用下面的getType方法试下


function Person(name,age){
  this.name = name;
  this.age = age;
}
Person.prototype = {
  showName : function(){
    return this.name;
  }
}
Person.prototype.constructor = Person;
var p = new Person();
function getType( obj ) {
  var fName = obj.constructor.toString();  
  fName = fName.match(/function[\s*]?(.*)\(.*\)/);
  if(fName[1]){    
    return '[object '+fName[1]+']'
  }
}
alert(getType(p));

------解决方案--------------------
alert的显示值是对象ToString方法的返回值
var str = overlays[overlays.length - 1].toString();
就行了