检查这是否是JavaScript

时间:2015-10-20 10:58:28

标签: javascript google-maps google-maps-api-3

我有我的JS对象。

function Foo() { 
    this.bar = new google.maps.LatLng(12, 34);
}

我也做了一个吸气剂和二传手:

Foo.prototype.SetBar = function(bar_arg) {
    this.bar = bar_arg;
}

Foo.prototype.GetBar = function() {
    return this.bar;
};

如何强制用户仅google.maps.LatLng提供bar_arg个对象?

换句话说,如果用户将调用this.setBar('i am a string')而不是this.setBar(new google.maps.LatLng(56, 78)),我想抛出异常来执行特定操作。 instalceof 是个好主意吗?如果是,那我该怎么检查?

if ( ! bar_arg instanceof google.maps.LatLng) { //throw new... }

或只是

if ( ! bar_arg instanceof LatLng) { //throw new... }

显然已加载Google Maps API。

1 个答案:

答案 0 :(得分:2)

您使用instanceof开启了正确的轨道。

事实上,对你的尝试略有修改:

if (!(bar_arg instanceof google.maps.LatLng)) { //throw new... }

应该正是你所需要的......