万恶的function在javascript中的运用实例分析
javascript中最有特色而又让你困惑的function算一个了
下面看一下常用操作
复制代码 代码如下:
function doit(){
.....
}
doit();
javascript中的函数我们可以把它当作方法使用
复制代码 代码如下:
var obj=new Object();
=function(){
.....
}
();
而function实际上就是对象(即Function类型的实例)
复制代码 代码如下:
function result(num1, num2) {
return num1 + num2;
}
var result = new Function("num1", "num2", "return num1+num2");
以上执行效果是一样的,同时function result还可以这样写(即函数表达式)
复制代码 代码如下:
var result=function(num1,num2){
return num1+num2;
}
这俩种写法的唯一区别是function是优先执行,而函数表达式是代码执行到才执行,另外每个函数内部都有一个类似数组的arguments对象
函数执行动态参数,即
复制代码 代码如下:
function result(){
return arguments[0]+arguments[1];
}
result(1,2);
arguments在动态传递参数方面经常使用
既然说function是对象,那么它应该也具体属性
复制代码 代码如下:
function person(){
....
}
="xxxx";
=function(){
alert();
}
(); //alert("xxxx")
我们还可以把它当成类,而函数体相当于构造函数
复制代码 代码如下:
function Person(nm){
=nm;
=function(){
alert(nm);
alert();
}
}
var p1=new Person("ygm1");
(); //alert ygm1 ygm1
var p2=new Person("ygm2");
(); //alert ygm2 ygm2
注意这里要用 因为this代表的是当前对象,如果直接alert(name) 求的是window对象的属性,同时传进来的参数nm在方法say中可以直接用,其实这涉及到作用域链,每个function体就是一个作用域,子域可以访问到父域的属性,而反过来却不行(其实也是可以取到的,设计到闭包一些知识,这里不做详解..)
与其他一些OO语言相比,每个类都可以有一些静态属性或方法,而javascript通过原型来模拟以达到每个对象共享其属性
复制代码 代码如下:
function Person(num) {
.....
}
= "ygm";
alert(new Person());
但OO语言的静态方法都是由类去调用,不能实例化本身的.,javascript中由于其特殊性恰好相反
注意这里alertPerson的name属性,如果函数体内没有查找到name则会到原型中去找,如果查找到则会屏蔽原型中的name直接返回其值
其实每创建一个function的同时也创建了一个原型对象,而原型对象引用自object,所以object是所有对象的基类
我们可以重写原型对象
otype=new ParentPerson();
Person的原型对象指向ParentPerson对象,而ParentPerson对象又指向自己的原型对象...,也就形成了原型链...
好了 今天就写到这里...
-
javascript闭包的高级使用方法
扩展Code:复制代码代码如下:varblogModule=(function(my){hoto=function(){//添加内部代码};returnmy;}(blogModule));Say:将自身传进方法,然后实现了方法的扩展,有点象零件组装啊Code:复制代码代码如下:varblogModule=(function(my){varoldAddPhotoMethod=hoto;...
-
解决PHP中的Cannot modify header information 问题
我就遇到这种问题,网上找到这个解决的方案,就收藏下写PHP的朋友们肯定遇到过这样一个问题:通过header函数改变http协议头的时候,会出现一个类似下面格式的warning:复制代码代码如下:Warning:Cannotmodifyheaderinformation-headersalreadysentby这是为什么呢?因为在...
-
如何理解Javascript的caller,callee,call,apply区别
在提到上述的概念之前,首先想说说javascript中函数的隐含参数:argumentsarguments该对象代表正在执行的函数和调用它的函数的参数。[function.]arguments[n]参数function:选项。当前正在执行的Function对象的名字。n:选项。要传递给Function对象的从0开始的参数值...
-
学习JavaScript的7个理由
为什么要学习JavaScript?学习JavaScript对我们的工作有什么帮助么?下面YJBYS小编为大家讲解!需求我之所以这样说的主要原因是,随着JavaScript的日渐成熟,以及方案变得越来越可行,我们对JavaScript程序员的需求正在持续增长。JavaScript在需求比例上已经超过了C#,仅...
相关文章
- JavaScript中Function函数
- javascript中Function类型详细介绍
- javascript中(function{})()写法解析
- JavaScript如何实现JSON.stringify
- java如何利用java.net.URLConnection发送HTTP请求
- 托福英语写作范文:Examinations exert a pernicious influence on educat
- 浅析javascript中function 的length属性
- JavaScript instanceof 的使用方法有哪些
- javascript之Function对象学习小结
- JavaScript中创建字典对象(dictionary)的实例