网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的范文:

 

标题 浅谈JavaScript函数的四种存在形态
范文
    下面小编就为大家带来一篇浅谈JavaScript函数的四种存在形态。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。
    函数的四种存在形态:
    1.函数形态
    2.方法形态 将函数赋值给某一个对象的成员,那么就称为方法
    3.构造器形态
    4.上下文形态
    1.函数形态:
    var foo = function() {
      alert(this);       //this是window
    };
    2.方法形态:
    o = {};
    o.foo = foo;  //将函数foo赋值给对象o的foo属性
    o.foo();    //弹出的是object,此时的this表示object
    var lib = {
      test:function() {
        alert(this);     //此处的this表示object(lib对象本身)
        //var that = this;  //要想匿名函数中this表示lib对象,可以这样
        (function() {
         alert(this);    //此处的匿名函数不属于lib对象,所以this的任然表示window
        })();
      }
    };
    lib.test();
    3.构造器(构造函数)var p = new Person();
    1、new创建了对象,并开辟了空间
    2、将对象的引用地址传递给函数,在函数中用this接收
    3、构造方法执行结束,返回this
    var Person = function() {
      this.age = 19;
      this.name = "Mr靖";
      return "{}";
    };
    var p = new Person();
    alert(p.name);  //弹出的是undefined,由于函数返回的是一个对象,所以直接将这个对象返回给person,而忽略age,name属性
    var Person = function() {
      this.age = 19;
      this.name = "Mr靖";
      return 123;
    };
    var p = new Person();
    alert(p.name);    //弹出“Mr靖”,由于返回值不是对象,所以直接忽略返回值
    alert(p);      //弹出object
    改变的东西有:构造函数改变了函数的返回值;如果函数的返回值是一个对象,那么就按照返回值来返回;如果返回值不是一个对象就忽略返回值,直接返回this;
    4.上下文调用模式函数.apply(对象, [参数列表])
    var foo1 = function(a, b) {
      alert(this);
      return a > b ? a : b;
    };
    var num = foo1.apply(null, [112, 34]);   //此时foo1是函数形态,this表示window
    num = foo1.apply({}, [112, 34]);      //此时foo1是方法形态,this表示参数中传入的对象{}
    函数.call(对象, 参数列表);
    var num1 =foo1.call(null,112,34);
    num1=foo1.call({},112,34);      //除了参数列表外,其余和apply一样
    以上这篇浅谈JavaScript函数的四种存在形态就是小编分享给大家的全部内容了,希望能给大家一个参考
随便看

 

在线学习网范文大全提供好词好句、学习总结、工作总结、演讲稿等写作素材及范文模板,是学习及工作的有利工具。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/17 12:17:49