获取JavaScript的Array中的方法列表

时间:2010-12-08 19:42:12

标签: javascript arrays

var c=$('<canvas></canvas>')[0].getContext('2d')
for(m in c){console.log(m)}

这将在CanvasRenderingContext2D中打印方法列表。我怎样才能对数组做同样的事情。我希望得到“拼接”,“流行”,“推”等等。显然for(m in Array.prototype){console.log(m)}将不起作用。

3 个答案:

答案 0 :(得分:13)

内置对象的大多数方法和属性在内部标记为不可枚举,因此不会在for-in循环中枚举它们。

ECMAScript 5有一个Object.getOwnPropertyNames方法,它返回所有属性名称的数组,所以你可以这样做:

Object.getOwnPropertyNames(Array.prototype)

但所有浏览器都不支持此功能。

答案 1 :(得分:2)

这样做:

for (m in Array) {
    console.log(m)
}

<强>输出:

from
type
implement
extend
alias
mirror
$family
$constructor
pop
push
reverse
shift
sort
splice
unshift
concat
join
slice
indexOf
lastIndexOf
filter
forEach
every
map
some
reduce
reduceRight
each
clone
invoke
clean
associate
link
contains
append
getLast
getRandom
include
combine
erase
empty
flatten
pick
hexToRgb
rgbToHex
overloadSetter
overloadGetter
hide
protect
apply
call
attempt
pass
delay
periodical
create
bind
bindWithEvent
run

答案 2 :(得分:1)

我不知道如何用普通的js做到这一点。我通常有下划线加载蚂蚁它有一个函数,它返回一个对象的所有函数

http://documentcloud.github.com/underscore/#functions

您可以检查下划线代码以检查它们是如何做的。