`
crabdave
  • 浏览: 1295528 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

如何理解js中temp = ( function(){ return 'abc' } )()

阅读更多

如何理解temp = ( function(){ return 'abc' } )() 

其实就是把运行结果返回给前面这个变量。

例如: 
temp = ( function(){ return 'abc' } )()
其运行结果就是temp='abc',

相当于:
function fun()
{
    return 'abc';


temp = fun();

alert(temp);

弹出来的结果就是abc。

 

 

第二个括号也可以放置参数,例如:

  var temp=(function(str){alert(str);return str;})('出来!');
  alert(temp);

将会弹出两个“出来!”的结果,其中后面这个括号里的是传入第一个括号里函数的参数,

当然在这个函数中如果没有“return str;”这个语句,变量temp是没有值的。

相当于:

var temp=fun('出来!');
 function fun(str){
  alert(str);
  return str;
 }

 

 

 

(function(){var i=100;alert(i)})()
这种写法就是传说中的匿名函数,它的好处是函数内部定义的对象在函数外面永远无法访问,除此之外这个匿名函数也是不可被其它代码访问的,即使得对象之间不 容易被命名污染(在 js中很多错误是由于对象命名冲突引起的)。按照通常的写法我们会这样写function a(){var i = 100;alert(i)};a();这样写就留下了一个对象a(在不要再用的时候就成了内存垃圾)。

分享到:
评论
2 楼 xo_tobacoo 2008-10-23  
搞不懂!js很多似乎算得上“奇淫”技巧!如果不是写框架,还是少用!
1 楼 笨笨狗 2008-10-21  
不是“相当于”的意思……
匿名自执行函数,注意,那个“匿名”的意义:避免了名称冲突,还生成了个闭包。

相关推荐

    JavaScript 中的转译符

    JavaScript 中的转译符 在 JavaScript 中,转译符是一种特殊字符,用于表示特殊的ASCII码值。在编程的时候,需要注意特殊字符的问题,因为这些字符可能会在运行时引起问题。 转义序列字符: * \b 退格 * \f 走纸...

    C语言常见的语法错误

    12.error 2555:’B::f1’:overriding virtual function differs from ‘A::fi’ only by return type or calling conversion. 该错误是由于类B对类A中的同名函数的重载仅根据返回值或调用约定上的区别。解决方法是...

    javascript 获取url参数和script标签中获取url参数函数代码

    在JavaScript编程中,有时我们需要获取URL中的参数或者脚本(script)标签中的参数。这些参数在Web应用中常用于传递动态数据或者配置信息。本文将详细介绍如何通过JavaScript获取URL参数和script标签中的参数,并...

    js 对象外部访问或者调用问题

    JavaScript中的对象外部访问和调用问题,主要涉及到的是作用域、this指向以及函数的几种调用方式。在JavaScript中,this的值取决于函数调用时的上下文,而不是定义时的位置。这个问题的核心在于如何在外部函数中正确...

    javascript测试题练习代码

    在JavaScript编程语言中,我们经常会遇到各种挑战性的测试题,以提升我们的编程技能。下面将对给定的三个JavaScript测试题进行详细解析: 1. 找出字符串中出现次数最多的字母及其出现次数: ```javascript var str ...

    js的各种排序算法实现(总结)

    JavaScript是Web开发中不可或缺的一部分,尤其在前端领域,它的数据处理能力对于页面动态性和用户体验有着重要影响。排序算法是编程中的基本概念,用于对数组或集合中的元素进行有序排列。在JavaScript中,我们可以...

    javascript cookie用法基础教程(概念,设置,读取及删除)

    return temp[1]; } } return ''; } ``` 删除 Cookie: 删除 Cookie 的方法是将其过期时间设置为过去的时间: ```javascript function removeCookie(name) { var d = new Date(); d.setTime(d.getTime() - ...

    华为OD机试C卷- 字符串变换最小字符串(Java & JS & Python & C).md-私信看全套OD代码及解析

    例如,“abc” “acb”,因为在字典中“abc”的位置比“acb”靠前。 针对本题,我们需要实现以下步骤: 1. 遍历字符串 `s`,寻找第一个不符合字典序最小原则的位置。 2. 对于这个位置,我们需要找到在其右侧的字符...

    php面试编程题_一份不错的php面试题(附答案)

    return strrev(substr(strrev($file_name), 0, strpos(strrev($file_name), '.'))); } 解释:这里提供了五种方法来获取文件的扩展名,包括 strrchr()、substr()、explode()、pathinfo() 和 strrev() 函数。 二、...

    原生js实现复制对象、扩展对象 类似jquery中的extend()方法

    在JavaScript开发中,经常需要复制和扩展对象。本文将介绍如何使用原生JavaScript实现对象的复制和扩展,类似于jQuery中的`extend()`方法的功能。首先,我们将探讨对象复制和扩展的概念,然后将展示具体的代码实现,...

    PHP工程师笔试题及答案

    答案: function CheckMailAdr($str){ return(eregi("^[-.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}$",$str)); } 知识点:正则表达式、字符串验证 9. MySQL 数据库,一天一万条以上的增量,怎么优化? 答案:...

    js代码-正则,uuid生成,replaceHtml

    在JavaScript编程中,正则表达式(Regular Expression)、UUID生成以及HTML内容替换是常见的操作,它们在网页...通过阅读和理解这些代码,开发者可以更好地掌握JavaScript中的正则操作、UUID生成和HTML内容处理技巧。

    新浪PHP面试题解析

    在给定的例子中,`echo count("abc")`会输出"1",因为字符串在PHP中被视为字符数组。 2. 获取客户端和服务器IP地址:通过`$_SERVER`全局数组中的`'SERVER_ADDR'`可以获得服务器IP,`'REMOTE_ADDR'`可以获得客户端IP...

    新浪微博 应用开发工程师 笔试题

    - `finally` 用于异常处理,确保在 try-catch 结构中,无论是否抛出异常,finally 块中的代码总会被执行。 - `finalize` 是一个特殊方法,用于在对象被垃圾收集之前执行清理操作,但这不保证一定会被调用,且不...

    mysql数据库的基本操作语法

    name VARCHAR(255) NOT NULL DEFAULT 'abc', sex CHAR NULL ); ``` **2. Unique约束** - **功能**: 确保列或列组合中的数据不重复。 - **命令**: ```sql CREATE TABLE temp ( id INT NOT NULL, name ...

    MD5加密算法(Java语言描述)

     MD5 ("abc") = 900150983cd24fb0d6963f7d28e17f72  MD5 ("message digest") = f96b697d7cb7938d525a2f31aaf161d0  MD5 ("abcdefghijklmnopqrstuvwxyz") = c3fcd3d76192e4007dfb496cca67e13b  MD5 (...

    精髓Oralcle讲课笔记

    --(将sal的查询结果转化为字符串,与ename连接到一起,相当于Java中的字符串连接) 7、select ename||'afasjkj' from emp; --字符串的连接 8、select distinct deptno from emp; --消除deptno字段重复的值 9、...

    C# 访问Oracle示例+PL/SQL+存储过程+触发器 完整示例 测试可用 易懂

    select id,case sex when 1 then '女' when 0 then '男' else '未填' end case from students) temp --PL/SQL基础6 循环Loop declare n number(10):=1; cnt number(15):=0; begin loop exit when n>100; --...

Global site tag (gtag.js) - Google Analytics