<script type="text/javascript">
Function.prototype.f = function(){
alert(this.toString());
}
(function(){})()
</script>
当执行该函数后,会自动alert出[object],为什么??求解
Function.prototype.f = function(){
alert(this.toString());
}
(function(){})()
</script>
当执行该函数后,会自动alert出[object],为什么??求解
解决方案 »
- mouseout和mouseover当快速移动 事件延迟触发问题
- 原型函数还是不大理解。。。
- [高分求解] javascript 中的日期对象保存进 cookies 后取出无法识别日期
- jsp中下载时出现乱码问题
- javascript中如何做到双击某张图片让其在新窗口中显示?
- 如何从iframe中得到整个窗口的高度?
- 请问怎么向一个javascript的函数传递参数????
- 如何让file类型的input元素自动选取一个文件?
- 那位大侠给提供一下这个JavaScript的网页实列!
- onload()执行onclick()事件的问题?
- 图像为什么刷新一下才能显示?启动时是空白页,这是怎么回事?
- 存储数据库问题!
这个代表你去执行了function对象的原型链上属性,而f是function对象上的一个属性,所以相当于执行了一次function(){
alert(this.toString());
}
alert(this.toString());
}
();结果应该和你的代码效果类似不解直接输入()表示什么意思,Mark一下,等高手解答
alert(this.toString());
}(function(){})()也就是把匿名空函数作为参数传为f并执行,然后再把f的执行结果当作一个函数再次执行,你可以尝试下面的代码来验证我的说法Function.prototype.f = function(){
alert(arguments[0]);
return function(){
alert(2);
}
}(function(){})();
如果要达到你的初衷,只需加一个;号就行了:Function.prototype.f = function(){
alert(this.toString());
};
(function(){})();