zoukankan      html  css  js  c++  java
  • 【转载】javascript中的函数对象

    原文地址:http://www.cnblogs.com/phpzxh/archive/2009/09/16/1568137.html【侵删】

    在javascript中函数的申明方式有四种 下面代码中一句代表了一种

    1 function func1(…){…} 
    2 var func2=function(…){…}; 
    3 var func3=function func4(…){…}; 
    4 var func5=new Function();

    第一种就是我们常见的函数申明方式,函数名为func1。第二种和第三种的区别是第二种是匿名函数,而第三种不是。第四种用的是对象申明的方式,因为javascript每个函数就是一个对象。

    1 //这两种声明是等价的
    2  function func1(a,b){
    3   return a+b;
    4 }
    5 var func1 = new Function("a","b","return a+b");

    匿名函数和有名字函数在javascript中是有点区别的我们看代码

    1  //声明一个匿名函数
    2  func1();
    3 var func1 = function(){
    4      alter(1);
    5 }

    运行火狐
    firbug中说func1未定义
    看看另外一种方式

    1 func1();
    2 function func1(){
    3   alert(1);
    4 }

    由此可见,尽管JavaScript是一门解释型的语言,但它会在进行函数调用时,检查整个
    代码中是否存在相应的函数定义,这个函数名只有是通过 function funcName()形式定义的才有效,而不能是匿名函数。

    匿名函数的申名方式有个好处就是防止函数重命名。在javascript还有匿名函数可以在申明之后立即调用,代码如下。

    1 var i=function(a,b){
    2     return a+b;
    3 }(1,2);

    这里i=3是返回值而不是函数,这是因为()的优先级比=高
    在jquery中的插件扩展就是这样实现的,我们来看看代码。

    复制代码
     1 (function($){
     2  
     3 $.fn.select = function(select) {
     4     if (select == undefined) select = true;
     5     return this.each(function() { 
     6         var t = this.type;
     7         if (t == 'checkbox' || t == 'radio')
     8             this.checked = select;
     9         else if (this.tagName.toLowerCase() == 'option') {
    10             var $sel = $(this).parent('select');
    11             if (select && $sel[0] && $sel[0].type == 'select-one') {
    12                 // deselect all other options
    13                 $sel.find('option').select(false);
    14             }
    15             this.selected = select;
    16         }
    17     });
    18 };
    19  
    20 })(jquery)
    复制代码

    注意直接这样写
    function(a,b){
    return a+b;
    }(1,2)
    是会报语法错误的。

  • 相关阅读:
    页面优化
    php安全开发(1)文件包含漏洞
    换工作之后需要兼容ie8的我
    vue
    最近在写h5的页面,发现有一款框架还不错给大家推荐一下
    一个控制器两个轮播
    箭头的制作
    layui
    h5视频播放
    两侧跟随广告
  • 原文地址:https://www.cnblogs.com/xzzzh/p/6369326.html
Copyright © 2011-2022 走看看