首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >所有javascript对象成员的创建是否相等?

问所有javascript对象成员的创建是否相等?
EN

Stack Overflow用户
提问于 2014-10-02 22:03:57
回答 2查看 40关注 0票数 0

对于加载了jquery和jquery.ui的网站,我尝试了以下实验。

如果我在镀铬控制台输入..。

代码语言:javascript
复制
jQuery.ui
>Object {version: "1.9.1", keyCode: Object, ie: false, ie6: false, plugin: Object…}

但如果我想要它的类型我会..。

代码语言:javascript
复制
typeof this["jQuery.ui"]
>"undefined"

有人能解释一下为什么吗?我应该如何知道jQuery.ui是否存在.如果"jQuery.ui“名称包含在字符串变量中,我将如何使用该变量来检查是否存在。

代码语言:javascript
复制
var myvar = "jQuery.ui";
typeof this[myvar];  
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-02 22:13:11

键入jQuery.ui时,您正在访问全局变量jQuery,然后请求该对象提供一个名为ui的属性。

this["jQuery.ui"]向全局对象请求一个名为"jQuery.ui"的属性。这是完全不同的事情。

我将如何/应该如何判断jQuery.ui是否存在?

最简单的办法是:

代码语言:javascript
复制
if (jQuery && jQuery.ui) {
  // jQuery.ui exists
}

如果"jQuery.ui“名称包含在字符串变量中,我将如何使用该变量检查是否存在?

不要这样做。不要将变量的名称存储为字符串。这是个坏主意。特别是当您试图检查全局变量时。

票数 2
EN

Stack Overflow用户

发布于 2014-10-02 22:27:16

如果"jQuery.ui“名称包含在字符串变量中,我将如何使用该变量检查是否存在?

如果您确实想要完成这一任务,请尝试以下代码:

​

代码语言:javascript
复制
function existsOn(prop, obj){
    var parts = prop.split('.');
    for(var i=0; i < parts.length; i++){
        obj = obj[parts[i]];
        if(!obj){
            return false;
        }
    }
    if(obj){
        return true;
    }
    return false;
}
var str = "jQuery.ui";
alert("Exists: " + existsOn(str, window));

​

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26170364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档