浅谈类似于(function(){}).call()的js语句

研究新浪微博的自动登陆流程,其中涉及到它的加密算法脚本,其中有一段如下形式的代码:

(function(){...}).call(name)

其中红色的....是函数的内部各种实现,name为一个对象的名字.这种形式的js从来没见过啊(恕我js这方面见识少啊).然后百度了一下大概的意义如下:

.call(name)的作用实际是将name作为前面函数所在域中的this来用,也就是说此时函数中的this就相当于引用的是name.

这段代码的实际意义可以认为:函数的具体实现对变量name的进行的改造,或者更简单的说函数的实现就是变量name的具体实现,某种意义上它等价于:

var name = function(){...}

以上所述就是本文的全部内容了,希望大家能够喜欢。

(0)

相关推荐

  • Function.prototype.call.apply结合用法分析示例

    昨天在网上看到一个很有意思的js面试题,就跟同事讨论了下,发现刚开始很绕最后豁然开朗,明白过来之后发现还是挺简单的,跟大家分享下! 题目如下:var a = Function.prototype.call.apply(function(a){return a;}, [0,4,3]);alert(a); 分析步骤如下: 1.将Function.prototype.call当成整体,call方法是由浏览器实现的本地方法,是函数类型的内部方法 var a = (Function.prototype.c

  • Fatal error: Call to undefined function curl_init()解决方法

    首先要确定php已经扩展 在php.ini中 复制代码 代码如下: extension=php_curl.dll 还要保证 php_curl.dll 复制到php安装目录下的ext下,libeay32.dll和ssleay32.dll复制到php安装目录下.(我的配置文件是system32,和php5ts.dll一个地) 记得重启Apache. 正解,over!

  • ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法

    本文实例讲述了ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法.分享给大家供大家参考.具体如下: 一.问题描述: ThinkPHP做文字水印 ,今天做一个电子请帖,就把祝福语贴到图片上面,发现一直报错是取不到图片类型,比如gif,jpg等,并提示call an undefined function exif_imagetype(). 二.解决方法: 出现这个错误就是php.in 配置问题,打开即可:打开扩展 exten

  • php运行出现Call to undefined function curl_init()的解决方法

    在网上下载了一个模拟登陆discuz论坛的php程序范例,试运行时出现"Call to undefined function curl_init"这个错误提示,没有定义的函数,也就是php还没打开对curl_init函数的支持.Google了一番终于解决了,方法如下: 系统环境,WIN2003 IIS6,PHP版本5.2.12 在装好PHP后,执行类似$ch = curl_init();这样的语句,出现Call to undefined function curl_init()的错误提

  • PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法

    在一台处理网络支付的服务器迁移的时候,发现不能支付. PHP环境:PHP版本为5.3.3系统为Red Hat 4.1.2-54 查看apache的错误日志,发现是加密文件中一个函数bcmul()报错: 复制代码 代码如下: PHP Fatal error:  Call to undefined function bcmul() in /php_rsa.php on line xxx 解决办法:使用如下命令: 复制代码 代码如下: yum install php-bcmath 就安装好了. 如果出

  • 浅谈类似于(function(){}).call()的js语句

    研究新浪微博的自动登陆流程,其中涉及到它的加密算法脚本,其中有一段如下形式的代码: (function(){...}).call(name) 其中红色的....是函数的内部各种实现,name为一个对象的名字.这种形式的js从来没见过啊(恕我js这方面见识少啊).然后百度了一下大概的意义如下: .call(name)的作用实际是将name作为前面函数所在域中的this来用,也就是说此时函数中的this就相当于引用的是name. 这段代码的实际意义可以认为:函数的具体实现对变量name的进行的改造,

  • 浅谈几种常用的JS类定义方法

    // 方法1 对象直接量 var obj1 = { v1 : "", get_v1 : function() { return this.v1; }, set_v1 : function(v) { this.v1 = v; } }; // 方法2 定义函数对象 var Obj = function() { var v1 = ""; this.get_v1 = function() { return this.v1; }; this.set_v1 = function

  • 浅谈C#下winform和JS的互相调用和传参(webbrowser)

    不多说,直接上代码,winform下button1调用js函数,从html页面获取值,然后JS调用WINFORM的函数,传送获取到的值到winform并通过messagebox的方法show出来.一步到位,winform调用JS函数和JS调用winform函数的方法都有了. C#的winform下代码如下: [System.Runtime.InteropServices.ComVisible(true)] public partial class Form1 : Form { public Fo

  • 浅谈jQuery添加的HTML,JS失效的问题

    如下图所示, 点击添加后,会新添加一行,但是二级联动就失效了, $('.provinceList').live('change', function(){ var provinceId = $(this).val(); var obj = $(this); $.post('/yuyue/ajaxCityList', {'provinceId':provinceId}, function(list){ var data = eval( '(' + list + ')' ); if( data .

  • 浅谈如何循序渐进的学好JS

    目录 概述 1.清楚js的定位 2.清晰的学习路线 3.自律坚持 4.多练多写 5.从多角度去学习和领悟 6.注意培养自信心 7.多写学习总结 8.构建专属知识导图 概述 在我们第一阶段完成HTML+CSS的学习之后,很多同学都会被第二阶段JS难倒--JS语法.JS数据类型.JS对象,Js给我们的印象总是那么的"复杂",因为它相比html来说是动态的,是编程语言,更深奥一些.想要熟练掌握js难度很大,不过如果你把知识点梳理清楚,真正的理解并加以运用,你就可以掌握它.那么该如何才能学好J

  • 浅谈Nodejs应用主文件index.js

    前言 经过之前的文章 <浅谈Nodejs应用的主文件index.js的组成部分> ,终于认识了 Node 妹子的容颜,然后好像上呀<( ̄︶ ̄)>.呦西~这次让本屌在她胴体上游走一番,想想也是不错滴.嗯哼,YY到此为止. 正文 这篇文章主要以组成部分为单位了解一下 index.js 这个主文件...皮肤有多滑( ̄▽ ̄)~ 既然之前说过了index.js的组成部分,那么这次就一个组一个组的说.没错!本帅的手,怎么能放过你的每一寸肌肤! 一.引入依赖模块 嗯..就像这样: var exp

  • 浅谈JavaScript function函数种类

    本篇主要介绍普通函数.匿名函数.闭包函数 1.普通函数介绍 1.1 示例 复制代码 代码如下: function ShowName(name) {     alert(name); } 1.2 Js中同名函数的覆盖 在Js中函数是没有重载,定义相同函数名.不同参数签名的函数,后面的函数会覆盖前面的函数.调用时,只会调用后面的函数. 复制代码 代码如下: var n1 = 1;   function add(value1) {     return n1 + 1; } alert(add(n1))

  • 浅谈js中function的参数默认值

    func(string1,url,flag,icon),然后在另一个asp中调用它func(a,b),那flag和icon的值是什么,怎么定义默认值?谢谢! --默认值应该是 undefined 在函数内预设数可以用 arguments[i] i就是你参数的位置 第一个为0 所以要设定 flag 的默认值 则可以这么写 function func(string1,url,flag,icon){ if(!arguments[2]) flag = "123"; if(!arguments[

  • 浅谈JS中逗号运算符的用法

    注意: 一.由于目前正在功读JavaScript技术,所以这里拿JavaScript为例.你可以自己在PHP中试试. 二.JavaScript语法比较复杂,因此拿JavaScript做举例. 最近重新阅读JavaScript权威指南这本书,应该说很认真的阅读,于是便想把所学的东西多记录下来.后 面本人将逐步写上更多关于本书的文章. 本文的理论知识来自于JavaScript权威指南,我这里做一下整理,或者说叫笔记. 如果你的基础够好的话,完全理解不成问题,但是如果读得有些郁闷的话,可以加我的QQ:

  • 浅谈js文件引用方式及其同步执行与异步执行

    任何以appendChild(scriptNode) 的方式引入的js文件都是异步执行的 (scriptNode 需要插入document中,只创建节点和设置 src 是不会加载 js 文件的,这跟 img 的与加载不同 ) html文件中的<script>标签中的代码或src引用的js文件中的代码是同步加载和执行的 html文件中的<script>标签中的代码使用document.write()方式引入的js文件是异步执行的 html文件中的<script>标签src

随机推荐