首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >这个字符串作为Javascript对象表示什么?

这个字符串作为Javascript对象表示什么?
EN

Stack Overflow用户
提问于 2011-09-22 21:55:05
回答 2查看 1.1K关注 0票数 0

考虑到将以下数据输入到javascript引擎(比如犀牛):

代码语言:javascript
运行
复制
{
  hello=66.66,
  whygod=sun.org.mozilla.javascript.internal.NativeArray@7ba28183,
  sku=[2490748],
  world=sun.org.mozilla.javascript.internal.NativeArray@69e4fede,
  price=[]
}

1) sku=2490748price=[]在javascript中代表什么样的对象?

我本以为它们是数组,但看起来并非如此,因为当我作为处理这些数据的javascript引擎的一部分运行以下逻辑时,价格不会被删除:

function doStuff(row) { var price = row.get( 'price' ); if ( price == null || price == '' || price.length == 0) { row.remove( 'price' ); } return row; }

2)那么它是什么,有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-23 16:05:19

在java端,在被输入到犀牛javascript引擎之前,我发现price=[]是将名为ArrayList的键映射到只有一个空字符串对象的ArrayList对象。

然后,在javascript端吐出价格对象的键/值对,向我展示了--在所有上,它实际上不是任何类型的标准javascript对象!

我说出了应该有一个空字符串的和sku。现在,至少sku应该在其键/值映射转储中有值2490748,但它没有!叹息..。不知道该怎么做。

除了空:假属性似乎没有任何用处。但我觉得应该提一提:

sku=

空:假

indexOf:函数indexOf() {/* int indexOf(java.lang.Object) */}

notifyAll:函数notifyAll() {/* void notifyAll() */}

removeAll:函数removeAll() {/* boolean (java.util.Collection) */}

trimToSize:函数trimToSize() {/* void trimToSize() */}

containsAll:函数containsAll() {/* boolean (java.util.Collection) */}

包含:函数contains() {/*布尔包含(java.lang.Object) */}

等于:函数等于() {/*布尔值等于(java.lang.Object) */}

通知:函数notify() {/* void通知() */}

subList:函数subList() {/* java.util.List subList(int,int) */}

类:类java.util.ArrayList集:函数集() {/* java.lang.Object set(int,java.lang.Object) */}

isEmpty:函数isEmpty() {/* boolean () */}

add:函数add() {/* void (int,java.lang.Object)布尔add(java.lang.Object) */}

ensureCapacity:函数ensureCapacity() {/* void ensureCapacity(int) */}

size:函数size() {/* int size() */}

迭代器:函数迭代器() {/* java.util.Iterator迭代器() */}

clear:函数clear() {/* void () */}

等待:函数等待() {/*空等待()空等待(长)空等待(长,int) */}

listIterator:函数listIterator() {/* java.util.ListIterator listIterator(int) java.util.ListIterator listIterator() */}

retainAll:函数retainAll() {/* boolean (java.util.Collection) */}

toString:函数toString() {/* java.lang.String toString() */}

hashCode:函数hashCode() {/* int hashCode() */}

toArray:函数toArray() {/* java.lang.Object[] toArray( java.lang.Object[] ) java.lang.Object[] toArray() */}

lastIndexOf:函数lastIndexOf() {/* int lastIndexOf(java.lang.Object) */}

addAll:函数addAll() {/* boolean ( java.util.Collection)布尔addAll(int,java.util.Collection) */}

函数克隆() {/* java.lang.Object克隆() */}

get:函数get() {/* java.lang.Object get(int) */}

getClass:函数getClass() {/* java.lang.Class getClass() */}

删除:函数删除() {/* java.lang.Object删除(Int)布尔删除(java.lang.Object) */}

票数 0
EN

Stack Overflow用户

发布于 2011-09-22 22:05:12

如果这是外部大括号所描述的函数块,如下所示:

代码语言:javascript
运行
复制
function init()
{
  hello=66.66
  whygod=sun.org.mozilla.javascript.internal.NativeArray@7ba28183,
  sku=[2490748],
  world=sun.org.mozilla.javascript.internal.NativeArray@69e4fede,
  price=[]
}

然后:

代码语言:javascript
运行
复制
sku=[2490748] 

是将长度为2490748的数组分配给变量sku。要确定地知道,我们必须在您提供的代码周围看到更多的上下文。您可以在这个skuhttp://jsfiddle.net/KFgwF/中看到一些关于这个案例的诊断信息。

如果sku不是在本地范围中定义的,那么它就被隐式声明为全局变量(因为前面没有var )。

代码语言:javascript
运行
复制
price=[]

是分配一个空数组的价格。

根据您的评论编辑:

如果您期望这是一个传递给函数的数据结构:

代码语言:javascript
运行
复制
{
  hello=66.66
  whygod=sun.org.mozilla.javascript.internal.NativeArray@7ba28183,
  sku=[2490748],
  world=sun.org.mozilla.javascript.internal.NativeArray@69e4fede,
  price=[]
}

那么,这根本不是合法的javascript。为了成为一个合法的数据结构声明,它必须如下所示:

代码语言:javascript
运行
复制
{
  hello: 66.66,
  whygod: "sun.org.mozilla.javascript.internal.NativeArray@7ba28183",
  sku: [2490748],
  world: "sun.org.mozilla.javascript.internal.NativeArray@69e4fede",
  price: []
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7521962

复制
相关文章

相似问题

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