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

js 函数function用法

阅读更多
http://blog.csdn.net/sunboy_2050/article/details/8179110

javascript 函数不同于其他的语言,每个函数都是作为一个对象被维护和运行的。通过函数对象的性质,可以很方便的将一个函数赋值给一个变量或者将函数作为参数传递。在继续讲述之前,先看一下函数的使用语法:

以下是引用片段:
function func1(…){…} 
var func2=function(…){…}; 
var func3=function func4(…){…}; 
var func5=new Function(); 
<script type="text/javascript">  
  
    // 1, 方法调用模式  
    // 当一个函数被保存为对象的一个属性时,我们称之它为该对象的一个方法,那么this被绑定到该对象上  
    var myObject={   
        name : "myObject" ,   
        value : 0 ,   
        increment : function(num){   
            this.value += typeof(num) === 'number' ? num : 0;   
            return this;  
        } ,   
        toString : function(){   
            return '[Object:' + this.name + ' {value:' + this.value + '}]';   
        }   
    }   
    alert(myObject.increment(10).increment(20).toString());     // [Object:myObject {value:30}]  
  
  
    // 2, 函数调用模式  
    // 当一个函数并非一个对象的函数时,那么它被当作一个函数来调用,this被绑定到全局对象上。这是语言设计的一个错误。倘若语言设计正确,当内部函数调用时,this应该仍然绑定到外部函数的this变量上  
    var myObject={   
        name : "myObject" ,   
        value : 0 ,   
        increment : function(num){   
            this.value += typeof(num) === 'number' ? num : 0;   
            return this;  
        } ,   
        toString : function(){   
            return '[Object:' + this.name + ' {value:' + this.value + '}]';   
        },   
        getInfo: function(){   
            var self=this;   
            return (function(){   
                //return this.toString();   // 内部匿名函数中this指向了全局对象window, 输出 [object Window]   
                return self.toString();     // 定义一个变量selft并给它赋值为this,那么内部函数通过该变量访问到指向该对象的this  
            })();   
        }   
    }   
    alert(myObject.increment(10).increment(20).toString());     // [Object:myObject {value:30}]  
  
  
    // 3, 构造器调用模式   
    // JavaScript是一门基于原型继承的语言, 这意味着对象可以直接从其他对象继承属性, 该语言是无类别的。   
    // 如果一个函数前面带上new来调用,那么将创建一个隐藏连接到该函数的prototype成员的新对象,同时this将会被绑定到构造函数的实例上。   
    function MyObject(name){   
        this.name = name || 'MyObject';   
        this.value=0;   
        this.increment = function(num){   
            this.value += typeof(num) === 'number' ? num : 0;   
        };   
        this.toString = function(){   
            return '[Object:' + this.name + ' {value:' + this.value + '}]';   
        }   
        this.target = this;   
    }   
      
    MyObject.prototype.getInfo = function(){   
        return this.toString();   
    }   
  
    // 同时创建一个MyObject.prototype对象,myObject继承了MyObject.prototype的所有的属性, this绑定到了MyObject的实例上   
  
    var myObject = new MyObject();   
    myObject.increment(10);   
    alert(myObject.value);  //10   
      
    var otherObject = new MyObject();   
    otherObject.increment(20);   
    alert(otherObject.value);   //20   
      
    alert(myObject.target===myObject);  //  ture   
    alert(myObject.target.getInfo());   // [Object:MyObject {value:10}]  
  
      
    // 4, Apply 调用模式   
    // JavaScript是一门函数式的面向对象编程语言,所以函数可以拥有方法。 函数的apply方法,如同该对象拥有此方法,此时this指向该对象。   
    // apply接收两个参数,第一个是要绑定的对象(this指向的对象),第二个是参数数组.   
    function MyObject(name){   
        this.name = name || 'MyObject';   
        this.value = 0;   
        this.increment = function(num){   
            this.value += typeof(num) === 'number' ? num : 0;   
        };   
        this.toString=function(){   
            return '[Object:'+this.name+' {value:'+this.value+'}]';   
        }   
        this.target=this;   
    }   
    function getInfo(){   
        return this.toString();   
    }   
    var myObj = new MyObject();   
    alert(getInfo.apply(myObj));    //[Object:MyObject {value:0}],   this指向myObj   
    alert(getInfo.apply(window));   //[object Window],  this指向window   
  
  
    // for and while  
    function func(a,b){    
        alert(a);  // 1  
        alert(b);  // 2  
          
        for(var i=0;i<arguments.length;i++){    
            alert(arguments[i]);    // 1, 2, 1, 2, 3  
        }    
          
        var i=0;  
        while(i<arguments.length){  
            alert(arguments[i]);    // 1, 2, 1, 2, 3  
            i=i+1;  
        }  
    }    
    func(1,2,3);     
      
    var i=0  
    for (i=0;i<=10;i++) {  
        document.write("The number is " + i + "<br/>")  
    }  
      
</script>  
分享到:
评论

相关推荐

    js中function函数的使用方法.docx

    本文将详细介绍`function`的各种使用方法及其应用场景,帮助读者更深入地理解这一核心概念。 #### 二、Function函数的基本用法 ##### 1. 作为基本的函数声明 这是最常见的定义函数的方式: ```javascript ...

    JavaScript函数参数使用带参数名的方式赋值传入的方法

    总之,JavaScript函数参数使用带参数名的方式赋值传入的方法是一种提高代码可读性和灵活性的优秀实践。它减少了因参数顺序或缺失导致的错误,使代码结构更加清晰,同时为参数管理提供了更多的控制选项。对于需要编写...

    javascript实现根据函数名称字符串动态执行函数的方法示例

    此外,关于JavaScript的其它编程技巧,本篇介绍了多个专题,包括常用函数技巧、面向对象入门、json操作、切换特效、查找算法、错误与调试、数据结构与算法、遍历算法以及数学运算的用法总结。这些内容都是非常实用的...

    javascript指南和函数式编程

    而《JavaScript函数式.zip》可能是一份关于JavaScript函数式编程的资料集合,函数式编程是一种编程范式,强调使用函数和避免改变状态。其中可能涵盖以下知识点: 1. **纯函数**:理解纯函数的定义,即给定相同的...

    javascript函数速查手册

    这份"JavaScript函数速查手册"涵盖了JavaScript函数的各个方面,旨在帮助开发者快速查找和理解各种函数的用法和特性。 一、函数基础 JavaScript中的函数是可执行的代码块,可以封装成独立的模块,便于复用。函数...

    JS函数大全及使用方法实例

    ### JS函数大全及使用方法实例:深入解析与实践 JavaScript是一种强大的编程语言,广泛应用于Web开发,其灵活性和丰富的内置函数让开发者能够高效地处理各种数据类型和逻辑运算。本文将详细探讨JavaScript中一些...

    javascript函数速查

    JavaScript函数是编程语言的核心组成部分,它是一段可重复使用的代码块,可以接受参数并返回值。在JavaScript中,函数不仅可以作为表达式,还能作为变量赋值、作为参数传递以及作为返回值。本速查指南将深入探讨...

    JavaScript中的function使用方法.docx

    JavaScript 中的 function 使用方法 JavaScript 中的 function 使用方法可以分为两种:作为普通逻辑代码容器和作为对象。 一、function 作为普通函数 在 JavaScript 中,function 可以作为普通函数使用,类似于 C...

    深入浅析JS Function()构造函数

    总之,`Function`构造函数在JavaScript中提供了一种灵活的函数创建方法,但需谨慎使用,因为它可能导致性能损失和非预期的作用域行为。在编写JavaScript代码时,了解这些差异可以帮助我们编写更高效、更可预测的代码...

    javascript函数式编程

    JavaScript函数式编程是一种编程范式,它强调将计算视为数据处理,通过函数操作来避免改变状态和可变数据。在JavaScript中,函数式编程能够帮助我们编写更简洁、可读性更强、易于测试和维护的代码。下面我们将深入...

    JS 四种函数调用模式

    在 JS 中,有四种主要的函数调用模式,分别是:普通函数调用、方法调用、构造函数调用和apply/call调用。下面我们将详细探讨这些调用模式。 1. **普通函数调用**: 这是最常见的情况,函数作为一个独立的实体被执行...

    javascript 函数教程(由浅入深)

    JavaScript 函数是编程语言的核心部分,它是一种组织代码的方式,使得代码...了解并熟练掌握JavaScript函数的使用,是成为一名合格的前端开发人员的基础。通过实例练习,可以更好地理解和应用这些概念,提升编程能力。

    QT和网页中的JavaScript函数进行相互调用的实现

    - 这里的回调函数用于处理JavaScript函数的异步返回结果,如果需要同步获取结果,可以使用`QWebEngineScript`来注册一个全局JavaScript对象,然后通过该对象调用JavaScript函数。 2. **JavaScript调用QT函数**: ...

    js回调函数

    JS回调函数是JavaScript中的一个重要概念,是理解JavaScript高级编程的关键。今天,我们将深入探讨JS回调函数的概念、特性和应用。 一、变量的作用域 在了解JS回调函数之前,我们需要先了解JavaScript中的变量作用...

    JSFunction函数深入解析.pdf

    ')` 使用`new Function()`创建函数,但这种方法不推荐,因为它会影响性能,因为代码需要被解析两次。 2. **函数返回值** - `return`语句用于从函数中返回一个值。如果没有返回值,函数默认返回`undefined`。 - `...

    function_exists函数详解

    例如,在 JavaScript 中,可以通过检查对象的属性来确定某个方法是否存在,而在 Python 中则可以使用 `callable()` 函数。 ### 总结 `function_exists()` 是 PHP 中一个简单而强大的工具,可以帮助开发者轻松地...

    javascript函数大全

    以上只是JavaScript函数相关的部分知识点,实际上JavaScript的函数还有许多高级特性和用法,如函数式编程概念、异步处理(回调、Promise、async/await)、模块化等。理解并熟练运用这些知识点,对于编写高效、可维护...

    【KETTLE教材】JS内嵌方法

    KETTLE中的JavaScript内嵌方法 KETTLE是一个开源的商业智能工具,提供了多种方式来处理和分析数据。其中,JavaScript是一种常用的脚本语言,用于在KETTLE中执行各种操作。在KETTLE中,JavaScript可以用于实现各种...

    js延时函数 JS延时

    在JavaScript编程领域,延时函数(也常被称为定时器或延迟执行函数)是开发者们频繁使用的工具之一。它们主要用于控制代码的执行顺序,为异步操作提供必要的等待时间,从而实现更加灵活和高效的程序设计。根据给定的...

    JS调用插件函数,插件回调JS函数例子

    在JavaScript (JS) 和浏览器插件的交互中,NPAPI(Netscape Plugin Application Programming Interface)是一种早期且广泛使用的插件技术,它允许浏览器加载和运行外部代码来扩展其功能。NPAPI插件通常用于播放视频...

Global site tag (gtag.js) - Google Analytics