创建的所有javascript对象成员都相等
are all javascript object members created equal?
对于我的带有jquery和jquery.ui的网站,我尝试了以下实验。
如果在铬控制台中,我键入。。。
jQuery.ui
>Object {version: "1.9.1", keyCode: Object, ie: false, ie6: false, plugin: Object…}
但如果我问它的类型,我会。。
typeof this["jQuery.ui"]
>"undefined"
有人能解释一下为什么会这样吗?如果jQuery.ui存在,我应该如何判断?。。。。如果"jQuery.ui"名称包含在一个字符串变量中,我将如何使用该变量来检查是否存在。。例如
var myvar = "jQuery.ui";
typeof this[myvar];
当您键入jQuery.ui
时,您正在访问全局变量jQuery
,然后向该对象请求名为ui
的属性。
this["jQuery.ui"]
向全局对象请求名为"jQuery.ui"
的属性。这是完全不同的事情。
如果jQuery.ui存在,我应该如何判断?
最简单的是:
if (jQuery && jQuery.ui) {
// jQuery.ui exists
}
如果"jQuery.ui"名称包含在一个字符串变量中,我将如何使用该变量来检查是否存在
不要这样做。不要将变量的名称存储为字符串。这是个坏主意。尤其是当您试图检查全局变量时。
如果"jQuery.ui"名称包含在一个字符串变量中,我将如何使用该变量来检查是否存在
如果你真的想实现这一点,请尝试以下代码:
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));
相关文章:
- 如何将从XML读取的值存储到本地对象's成员使用.get()函数
- Javascript映射对象成员以返回新的扁平对象
- 如何访问对象's成员通过另一种方法填充的方法
- 我需要使用什么语法来向一个对象的成员添加一个临时数组,该成员等同于一个字符串的通用列表
- CakePHP错误:在非对象上调用成员函数get(),使用cakejavascript助手时出错
- JavaScript 对象中的私有成员,带有 getter 和 setter
- 对象'未设置的数据成员值
- 控制台返回[Object-Object]而不是对象成员
- 为什么可以在内部函数成员中访问对象引用,而不能在内部属性成员中访问
- 从JavaScript对象访问数据's数组成员变量
- 对象属性不是在工厂成员函数内部创建的
- 在 JavaScript 中,如何有条件地向对象添加成员
- 如何在 Javascript 中将函数绑定到对象数据成员的更改
- 为什么在访问一个新对象的成员之前将其括在括号中
- console.log表示,当我调用对象的任何成员时,对象都是未定义的
- 如何使用正则表达式查找对象成员名称
- 如何向对象添加函数并引用其成员
- 访问javascript中对象类型的数组成员
- 在对象内部使用 for-in 循环来访问其成员
- 如何使用 Object.create() 而不是 new 创建具有私有成员的对象