如何在 JavaScript 中直接访问 Coordinates 构造函数?
How can I access the Coordinates constructor directly in JavaScript?
Vue 中的类型检查要求将构造函数作为类型传入:
props: {
coords: {
type: Coordinates,
required: true,
},
},
我不知道如何找到 Coordinates
构造函数。不能使用 Object
因为它不继承任何东西,并且不希望只允许任何东西。
MDN 上没有关于如何直接访问它的内容:https://developer.mozilla.org/en-US/docs/Web/API/Coordinates
有什么想法吗?
编辑:澄清一下,window.Coordinates
未定义。上面的代码示例不起作用。
您需要使用自定义验证器检查该值是否是构造函数的实例:
coords {
validator: function (value) {
return value instanceOf Coordinates; // Coordinates is a constructor in your case
}
}
查看 HTML5 Geolocation 文档。
我也在处理这个问题。我的解决方案是定义一个伪构造函数:
function Coordinates () {}
Coordinates.prototype = Object.prototype
在vue组件中
props: {
coords: {
type: Coordinates
}
}
这会起作用,因为 Vue 使用 instanceof
来验证自定义类型。
Coordinates
是 而不是 暴露在浏览器中供网络开发人员使用的东西。它是由 W3C 地理规范定义的接口,适用于实现地理定位功能的 浏览器供应商 。接口描述了某种类型的数据结构的外观。例如下例中的coords
:
navigator.geolocation.getCurrentPosition(function (pos) {
var coords = pos.coords
console.log(coords)
})
即使您可以使用以下代码检索 Coordinates
的文字。它只是一个对象(是的,它是原型,不是构造函数),你几乎不能做任何事情。
Object.getPrototypeOf(pos.coords)
这里有两点:
Coordinates
不适用于网络开发人员。
Coordinates
甚至不是函数。
我猜唯一的方法是define your own validator并检查输入值是否满足您的要求。这会更容易,因为 Coordinates
有一个特殊的 toString()
符号:
props: {
coords: {
validator: function (value) {
return value.toString() === '[object Coordinates]'
}
}
}
但是,如果您 hand-craft 您自己的坐标数据,此验证器可能会失败。更通用的方法是 duck-typing,只需检查它是否具有您需要的适当属性,通常是 latitude
和 longitude
。
Vue 中的类型检查要求将构造函数作为类型传入:
props: {
coords: {
type: Coordinates,
required: true,
},
},
我不知道如何找到 Coordinates
构造函数。不能使用 Object
因为它不继承任何东西,并且不希望只允许任何东西。
MDN 上没有关于如何直接访问它的内容:https://developer.mozilla.org/en-US/docs/Web/API/Coordinates
有什么想法吗?
编辑:澄清一下,window.Coordinates
未定义。上面的代码示例不起作用。
您需要使用自定义验证器检查该值是否是构造函数的实例:
coords {
validator: function (value) {
return value instanceOf Coordinates; // Coordinates is a constructor in your case
}
}
查看 HTML5 Geolocation 文档。
我也在处理这个问题。我的解决方案是定义一个伪构造函数:
function Coordinates () {}
Coordinates.prototype = Object.prototype
在vue组件中
props: {
coords: {
type: Coordinates
}
}
这会起作用,因为 Vue 使用 instanceof
来验证自定义类型。
Coordinates
是 而不是 暴露在浏览器中供网络开发人员使用的东西。它是由 W3C 地理规范定义的接口,适用于实现地理定位功能的 浏览器供应商 。接口描述了某种类型的数据结构的外观。例如下例中的coords
:
navigator.geolocation.getCurrentPosition(function (pos) {
var coords = pos.coords
console.log(coords)
})
即使您可以使用以下代码检索 Coordinates
的文字。它只是一个对象(是的,它是原型,不是构造函数),你几乎不能做任何事情。
Object.getPrototypeOf(pos.coords)
这里有两点:
Coordinates
不适用于网络开发人员。Coordinates
甚至不是函数。
我猜唯一的方法是define your own validator并检查输入值是否满足您的要求。这会更容易,因为 Coordinates
有一个特殊的 toString()
符号:
props: {
coords: {
validator: function (value) {
return value.toString() === '[object Coordinates]'
}
}
}
但是,如果您 hand-craft 您自己的坐标数据,此验证器可能会失败。更通用的方法是 duck-typing,只需检查它是否具有您需要的适当属性,通常是 latitude
和 longitude
。