如何仅在尚未声明的情况下声明新的javascript对象类型
我需要在代码中设置对象类型。但在某些浏览器中,成员可以兼容对象类型和my类及标准。如何仅在浏览器脚本主机中不存在类时才能声明该类 例如:如何仅在尚未声明的情况下声明新的javascript对象类型,javascript,class,Javascript,Class,我需要在代码中设置对象类型。但在某些浏览器中,成员可以兼容对象类型和my类及标准。如何仅在浏览器脚本主机中不存在类时才能声明该类 例如: if (typeof Set === 'undefined' ) { function Set() { // object initialization code ... } } 它不起作用,因为内部集合函数对象不是全局的。类似的东西应该可以工作 if (window.Set === undefined) {
if (typeof Set === 'undefined' ) {
function Set() {
// object initialization code ...
}
}
它不起作用,因为内部集合函数对象不是全局的。类似的东西应该可以工作
if (window.Set === undefined) {
window.Set = MySet;
}
最可靠的方法可能是使用以下方法:
if (!("Set" in window))
{
window.Set = function ()
{
...
}
}
如果定义了window.Set
,但其值为undefined
,这将正确地看到它已被定义,而不是检查值或使用typeof
如果需要在window
不是全局对象的情况下运行,可以在脚本的最顶端插入以下行:
var global = this;
然后,您可以使用全局
而不是窗口
来确定它是否为未定义
:
if (typeof window.Set === 'undefined')
...
简单的真实性测试就足够了:
if (!window.Set) {
window.Set = ...
如何在“if”语句中定义全局对象?能否为Windows脚本主机编写示例(不适用于浏览器,即窗口对象不存在)?谢谢,您的代码运行良好!如果我的代码不在浏览器中工作,该怎么做?例如,在Windows Script Host?中,除非您向浏览器添加缺少的功能,否则我不会创建某种程度上已经存在的对象