zoukankan      html  css  js  c++  java
  • 函数

    一:函数调用

    构成函数主体的JavaScript代码在定义之时并不会执行,只有调用该函数时,他们才会执行。有四种方法来调用JavaScript函数:

    a:作为函数

    b:作为方法

    c:作为构造函数

    d:通过他们的call()和apply()方法间接调用。

    二:作为函数调用

    function printprops(o){
        for(var p in o){
            console.log(p+": "+o[p]+"
    ")
        }
    }
    printprops({x:1});

    三:作为方法调用

    当一个函数被保存为对象的一个属性时,我们称它为一个方法。当一个方法被调用时,this本绑定到该对象。如果调用表达式包含一个提取属性的动作(即包含一个。点表达式或【】下标表达式),那么它就是被当做一个方法来调用。

    var calculator = {
        operand1:1,
        operand2:2,
        add:function () {
            this.result = this.operand1+this.operand2
        }
    };
    calculator.add();/*这个方法调用来计算1+2的值*/
    alert(calculator.result);/*3*/

    四:this在函数中的指向

    this是一个关键字,不是变量,也不是属性名。JavaScript的语法不允许给this赋值。和变量不同,关键字this没有作用域的限制,嵌套的函数不会从调用它的函数中继承this。如果嵌套哈数作为方法调用,其this的值就是指向调用它的对象。如果嵌套函数作为方法调用,其this的值不是全局对象就是undefined。如果你想访问这个外部函数的this值,需要将this的值保存在一个变量里,这个变量和内部函数都在同一个作用域内。通常使用self来保存this。

    var o ={                                /*对象o*/
        m:function () {                     /*对象中的方法m*/
            var self = this;                /*将this的值保存在一个变量中*/
            console.log(this === self);     /*输出true,this就是这个对象o*/
            f();                            /*调用辅助函数*/
            function f() {                  /*定义一个嵌套函数*/
                console.log(this === o);    /*false:this的值是全局对象*/
                console.log(self === o);    /*true:self指外部函数的this值*/
            }
        }
    };
    o.m();

    五:构造函数调用

    如果函数或者方法调用之前带有关键字new,那么背地里将会创建一个连接到该函数的prototype成员的新对象,同时会将this绑定到那个对象上。

    /*创建一个名为Quo的构造器函数,它构造一个带有status属性的对象。*/
    var Quo = function (string) {
        this.status = string;
    };
    /*给Quo的所有实例提供一个get_status的公共方法。*/
    Quo.prototype.get_status = function () {
        return  this.status;
    };
    /*构造一个Quo实例*/
    var myQuo = new Quo("confused");
    /*打印*/
    document.write(myQuo.get_status());
  • 相关阅读:
    安卓客户端获取手机号码
    安卓自定义控件之设计自己的提示dialog
    一步步打造自己的分页控件4
    C#winform小游戏之贪吃蛇重温C#
    android观察者模式
    Android开发之Java设计模式
    Android 用Animationlist实现逐帧动画
    图片压缩
    Android使用缓存优化ListView
    Android命令行启动程序正确使用技巧解析
  • 原文地址:https://www.cnblogs.com/QianBoy/p/7632595.html
Copyright © 2011-2022 走看看