JavaScript函数的四种存在形态
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函数的四种存在形态的更多相关文章
- javascript this 代表的上下文,JavaScript 函数的四种调用形式
JavaScript 是一种脚本语言,支持函数式编程.闭包.基于原型的继承等高级功能.其中JavaScript 中的 this 关键字,就是一个比较容易混乱的概念,在不同的场景下,this会化身不同的 ...
- javascript函数的四种调用模式及其this关键字的区别
方法调用模式: 当一个函数被保存为对象的一个属性时,我们称它为一个方法.当一个方法被调用时,this被绑定到该对象. //方法调用模式 var myObject = { value: 0 , incr ...
- JavaScript高级之函数的四种调用形式
主要内容 分析函数的四种调用形式 弄清楚函数中this的意义 明确构造函对象的过程 学会使用上下文调用函数 了解函数的调用过程有助于深入学习与分析JavaScript代码. 本文是JavaScript ...
- JavaScript函数的4种调用方法详解
在JavaScript中,函数是一等公民,函数在JavaScript中是一个数据类型,而非像C#或其他描述性语言那样仅仅作为一个模块来使用.函数有四种调用模式,分别是:函数调用形式.方法调用形式.构造 ...
- Javascript函数调用的四种模式
一 前言 Javascript一共有四种调用模式:方法调用模式.函数调用模式.构造器调用模式以及apply调用模式.调用模式不同,对应的隐藏参数this值也会不同. 二 方法调用模式 函数作为对象的属 ...
- swap函数的四种写法
swap 函数的四种写法 (1)经典型 --- 嫁衣法 void swap(int *a, int *b) { int temp; temp = *a; *a = *b; *b = temp; } ( ...
- C语言中返回字符串函数的四种实现方法 2015-05-17 15:00 23人阅读 评论(0) 收藏
C语言中返回字符串函数的四种实现方法 分类: UNIX/LINUX C/C++ 2010-12-29 02:54 11954人阅读 评论(1) 收藏 举报 语言func存储 有四种方式: 1.使用堆空 ...
- C语言中返回字符串函数的四种实现方法
转自C语言中返回字符串函数的四种实现方法 其实就是要返回一个有效的指针,尾部变量退出后就无效了. 有四种方式: 1.使用堆空间,返回申请的堆地址,注意释放 2.函数参数传递指针,返回该指针 3.返回函 ...
- JavaScript 函数的4种调用方法
JavaScript 函数有 4 种调用方式. 每种方式的不同方式在于 this 的初始化. 作为一个函数调用 function myFunction(a, b) { return a * b; } ...
随机推荐
- decimall类型数据
同样是decimal(18,5) 和 decimal(18,4) 在VB中经过几次转化过后,数据就有可能改变. 遇到的情况 decimal(18,5)到 decimal(18,4)转换过程中数 ...
- webform的三级联动
webform的三级联动 与winform一样,只不过需把DropDownList的AutoPostBack属性改为True. *简单日期的编写方法:用是三个DropDownList分别代表年月日,用 ...
- tyvj 1150 绳子围点 Pick定理 防溢出策略
P1150 - 绳子围点 From 332404521 Normal (OI)总时限:10s 内存限制:128MB 代码长度限制:64KB 背景 Background 最近小小鱼在研 ...
- Jqgrid动态拖拽
//注册事件 jQuery("#list1").jqGrid('setGridParam', { gridComplete : function() { $("#_emp ...
- httpclient 超时设置
最近项目客户反应超时经常出现:现已经总结超时设置: 使用是apache的HttpClient: DefaultHttpClient:请求超时httpclient.getParams().setPara ...
- PHP+MYSQL实现输出打印数据库表结构和输出表内容
效果图1 <form id="form1" name="form1" action="2.php" method="get& ...
- 【VirtualDOM】
前沿技术解密——VirtualDOM miniflycn/qvd Matt-Esch/virtual-dom Facebook React 和 Web Components(Polymer)对比优势和 ...
- mac上的键盘生活——quicksliver
昨天晚上一直在找mac上的博客客户端,没发现很好的国内支持客户端,却发现了一个新的东西--quicksliver 简单的说,这个就是个快捷键启动方式,这是我在mac上用的最好的一个快捷键启动程序( ...
- octopress 如何添加youku视频和本地视频(octopress how to add a youku video or a local video)
用octopress 官方的video tag 可以添加视频,但是由于国内经常使用的是youku,所以下面是如何添加youku视频到octopress的教程. 首先添加youku.rb文件到路径:oc ...
- 简单登陆UI设计
简单UI设计 作品效果图: 关键技术: 用到了本地化控件:SharedPreferences,简单的说就是本地配置. 四大组件:Intent 基本思路请看代码: Java代码: import ...