首页 技术 正文
技术 2022年11月14日
0 收藏 481 点赞 4,978 浏览 1125 个字

函数的四种存在形态: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表示windownum = foo1.apply({}, [112, 34]);           //此时foo1是方法形态,this表示参数中传入的对象{}
函数.call(对象, 参数列表);
var num1 =foo1.call(null,112,34);num1=foo1.call({},112,34);            //除了参数列表外,其余和apply一样
 

 

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,909
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,434
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,249
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,060
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,692
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,730