【cloudgamer框架研究之 】 Array.prototype.forEach的困惑

plglenn8 2010-01-21 09:56:39
if (!Array.prototype.forEach)
{
Array.prototype.forEach = function(fun /*, thisp*/)//l@@k /*, thisp*/什么用法
{
var len = this.length >>> 0;//l@@k什么用法
if (typeof fun != "function")
throw new TypeError();

var thisp = arguments[1];
for (var i = 0; i < len; i++)
{
if (i in this)
fun.call(thisp, this[i], i, this);
}
};
}
...全文
188 16 打赏 收藏 举报
写回复
16 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
阿非 2010-01-21
  • 打赏
  • 举报
回复
cloudgamer 说的有道理啊

我不这样认为
plglenn8 2010-01-21
  • 打赏
  • 举报
回复
>>> 原来这是js的右移运算符,杯具
wiki14 2010-01-21
  • 打赏
  • 举报
回复
result = expression1 >>> expression2
其中result是任何变量。
expression1是任何表达式。
expression2是任何表达式。

>>> 运算符把 expression1 的各个位向右移 expression2 指定的位数。
右移后左边空出的位用零来填充。移出右边的位被丢弃。
wiki14 2010-01-21
  • 打赏
  • 举报
回复

var temp
temp = -14 >>> 2
变量 temp 的值为 -14 (即二进制的 11111111 11111111 11111111 11110010),向右移两位后等于 1073741820 (即二进制的 00111111 11111111 11111111 11111100)。
阿非 2010-01-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 plglenn8 的回复:]
引用 2 楼 sandy945 的回复:
/*, thisp*/

注释

常用于定义变量时 直接在后面写注释。

eg:

var bgUrl='',/*返回时url*/ ulr='';


不是 @cc_on@这样的吧,解释器应该无视吧
[/Quote]
就是使用/**/ 将注释 插入到代码中
plglenn8 2010-01-21
  • 打赏
  • 举报
回复
JavaScript:alert(5>0) =>true
JavaScript:alert(5>>0) =>5
JavaScript:alert(5>>>0) =>5
JavaScript:alert(5>>>>0) =>没有反应
plglenn8 2010-01-21
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 sandy945 的回复:]
之前 那个匿名函数的问题 还有待进一步确认
[/Quote]
cloudgamer 说的有道理啊 ,后来感觉还是不够完美

web版的说法:

http://topic.csdn.net/u/20100120/21/16ddc95b-bbe8-4c3c-9a98-d91a409d6474.html?52798
阿非 2010-01-21
  • 打赏
  • 举报
回复
之前 那个匿名函数的问题 还有待进一步确认
plglenn8 2010-01-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wiki14 的回复:]
>>>(右移,零填充)。
[/Quote]
5>>>0 是什么呢?

>>>三个>????
阿非 2010-01-21
  • 打赏
  • 举报
回复
>>>

无符号右移运算符
sohighthesky 2010-01-21
  • 打赏
  • 举报
回复
注释掉,不需要了,下面使用了arguments[1]来取的

第二个转化为int型,var aa="str";
alert(aa>>>0);
plglenn8 2010-01-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wiki14 的回复:]
Array.prototype.forEach(callBack: Function, thisObject: Object)

作用:对数组进行迭代操作,它有两个参数,第一个参数callBack是每次迭代所执行的函数,第二个参数thisObject可选,是要绑定到迭代执行的函数上的对象(也就是函数callBack中的this所指向的对象)


[/Quote]第二个参数thisObject可选 可选如何实现,能猜出来么?
plglenn8 2010-01-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sandy945 的回复:]
/*, thisp*/

注释

常用于定义变量时 直接在后面写注释。

eg:

var bgUrl='',/*返回时url*/ ulr='';
[/Quote]

不是 @cc_on@这样的吧,解释器应该无视吧
wiki14 2010-01-21
  • 打赏
  • 举报
回复
>>>(右移,零填充)。
阿非 2010-01-21
  • 打赏
  • 举报
回复
/*, thisp*/

注释

常用于定义变量时 直接在后面写注释。

eg:

var bgUrl='',/*返回时url*/ ulr='';
wiki14 2010-01-21
  • 打赏
  • 举报
回复
Array.prototype.forEach(callBack: Function, thisObject: Object)

作用:对数组进行迭代操作,它有两个参数,第一个参数callBack是每次迭代所执行的函数,第二个参数thisObject可选,是要绑定到迭代执行的函数上的对象(也就是函数callBack中的this所指向的对象)

发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2010-01-21 09:56
社区公告
暂无公告