最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

奇妙的js_javascript技巧

来源:动视网 责编:小采 时间:2020-11-27 20:38:04
文档

奇妙的js_javascript技巧

奇妙的js_javascript技巧: 代码如下:>>> function a(){function b(){return aaa} Function.prototype.c=function(){return b();}} >>> a() >>> a.c function() >>> a.c() aaa >>> a.hasOwnProperty(c) false 看这段代码,首
推荐度:
导读奇妙的js_javascript技巧: 代码如下:>>> function a(){function b(){return aaa} Function.prototype.c=function(){return b();}} >>> a() >>> a.c function() >>> a.c() aaa >>> a.hasOwnProperty(c) false 看这段代码,首


代码如下:
>>> function a(){function b(){return "aaa"} Function.prototype.c=function(){return b();}}
>>> a()
>>> a.c
function()
>>> a.c()
"aaa"
>>> a.hasOwnProperty("c")
false

看这段代码,首先声明一个函数a,内部又定义了一个函数b,但是函数b不是函数对象a的方法,只是函数a块当中的临时变量函数(或者说私有函数,不知道怎么描述好),后面又定义了一个函数c是用function(){}在a内部定义的,所以会产生closure所以c可以遍历到a下面所有块内部变量,当然包括b,我又把c挂到了Function.prototype下面,就是不是直接挂a下,而是挂到a的原形链上,最后还是执行出来了,并且hasOwnProperty也是假,更有

代码
代码如下:
>>> d={};
Object
>>> function a(){function b(){return "aaa"} d.c=function(){return b();}}
>>> a()
>>> d.c()
"aaa"

closure和函数执行的context一点关系没有,context可以用call apply方法改变this,可是closure在function定义后好似没有办法再修改了,不知道是不是这样

文档

奇妙的js_javascript技巧

奇妙的js_javascript技巧: 代码如下:>>> function a(){function b(){return aaa} Function.prototype.c=function(){return b();}} >>> a() >>> a.c function() >>> a.c() aaa >>> a.hasOwnProperty(c) false 看这段代码,首
推荐度:
标签: 技巧 js 的技巧
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top