JS——函数小结(1)

函数的声明和冒充

要了解call和apply就要从JS的函数开始说明,函数的声明包括三种方式

<span style="font-size:18px;">一般的声明方法
function box(num1,num2){
   return num1+num2;
}
alert(box(1,3));//4

//使用变量初始化函数
var box=function(num1,num2){
   return num1+num2;
};
alert(box(1,3));//4

//使用Function构造函数  该方法是不推荐使用
var box=newFunction('num1','num2','returnnum1+num2');
alert(box(2,3));<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span></span>

函数也可以看做是一个特殊的对象,表示的是对象中的方法。而每一个声明的函数都包括了一个属性prototype,这个属性有两个方法就是call和apply,也就是所说的对象冒充。对象冒充可以理解为改变函数的作用域。下面来看一个例子。

<span style="font-size:18px;">var color='red';  //全局变量,color是全局变量window的属性
var box={
       color:'blue',//这里的color是box的属性
}
function sayColor(){
       alert(this.color);  //申明一个函数
}
sayColor();
//如果直接的调用函数结果为red。因为其中的this表示的window

sayColor.call(box);
//使用call进行对象冒充,其中的box其实表示的是sayColor()函数的作用域是box,这样在调用函数是其中的this表示的就是box</span>

小结

对象冒充这一部分在JS中很多地方有有应用,理解清楚应用的原理还是很有必要的,以上是结合视频数部分的实例和理论知识理解到的,大家有不同的见解请指教!

时间: 2024-10-06 19:24:07

JS——函数小结(1)的相关文章

JS——函数小结(2)

匿名函数和闭包 到目前为止我们学过的函数都有一个函数名通过函数名传递相应的参数调用该函数,但是这次在JS中的接触到函数可以没有名字名字就是匿名函数.那么我们一般是如何调用匿名函数的呢 方法一:这也是函数的一种声明方式 var sum=function(x,y) { return x+y; } alert(sum (2,3)); // "5" 方法二:匿名函数还能够进行自我执行 Alert((function(x,y) { return x+y;})(2,3)); 匿名函数的自我执行可以

js 格式化时间日期函数小结

下面是脚本之家为大家整理的一些格式化时间日期的函数代码,需要的朋友可以参考下. 代码如下: Date.prototype.format = function(format){ var o = { "M+" : this.getMonth()+1, //month "d+" : this.getDate(), //day "h+" : this.getHours(), //hour "m+" : this.getMinutes(

js加强小结

一)回顾JavaScript基础 (1)函数的定义方式 *>>正常方式 function add(num1,num2){...} >>构造器方式 var add = new Function("num1","num2","return num1+num2"); *>>匿名/无名方式 var add = function(num1,num2){函数体} (2)window对象是什么 在JS中,window表示整个

js isArray小结

原文:[转载]js isArray小结 在日常开发中,我们经常需要判断某个对象是否是数组类型的,在js中检测对象类型的常见的方法有几种: 1.typeof操作符.对于Function.String.Number.Undefined这几种类型的对象来说,不会有什么问题,但是针对Array的对象就没什么用途了: Js代码  isArray小结" alt="收藏代码" src="http://www.iteye.com/images/icon_star.png"

js 事件小结

1,事件对象   e || window.event //ie   2, 取鼠标点击坐标 带有滚动条的   var top = document.documentElement.scrollTop || document.body.scrollTop;//chorme var x = top + e.clientX; //可视区坐标   3, 获取屏幕坐标 e.screenX e.screenY   4, shiftKey altKey ctrlkey   5,onkeydown/onkeyup

JS函数大全 莫名其妙找到的

1 .document.write(""); 输出语句 2 .JS中的注释为// 3 .传统的HTML文档顺序是:document->html->(head,body) 4 .一个浏览器窗口中的DOM顺序是:window->(navigator,screen,history,location,document) 5 .得到表单中元素的名称和值:document.getElementById("表单中元素的ID号").name(或value) 6 .

JSF页面中使用js函数回调后台bean方法并获取返回值的方法

由于primefaces在国内使用的并不是太多,因此,国内对jsf做系统.详细的介绍的资料很少,即使有一些资料,也仅仅是对国外资料的简单翻译或者是仅仅讲表面现象(皮毛而已),它们的语句甚至还是错误的,很可能会误导使用者. 相对来说,看国内的那些仅仅是翻译过来的文章或书籍不如直接看国外的官方文档或资料来的实在,在我讲述jsf页面中如何使用js调用后台bean方法之前,先给大家说几个国外的资料.在primefaces官方网站上,你可以搜索到几乎所有你需要的东西,primefaces官网为:http:

webBrowser调用外部js文件和js函数(转载)

原文链接:http://fy5388.blog.163.com/blog/static/56499537201012594314130/ webBrowser调用外部js文件和js函数 '第一种方法:webbrowser动态调用html和js代码,都是动态的:代码示例: webBrowser1.Navigate("about:blank");webBrowser1.Document.OpenNew(True);webBrowser1.Document.Write("<H

JavaScript入门:006—JS函数的定义

JS函数的声明.声明函数的格式如下: function 函数名(参数列表){ //函数语句: return 返回值; } 来看具体的函数声明.1.普通函数 <script type="text/javascript"> function ShowHint() { alert("普通函数"); } </script> 2.带参数的函数 <script type="text/javascript"> functio