javascript中万恶的function实例分析
JavaScript实例 分析 Function
2023-06-13 09:14:28 时间
javascript中最有特色而又让你困惑的function算一个了
下面看一下常用操作
复制代码代码如下:
下面看一下常用操作
functiondoit(){
.....
}
doit();
javascript中的函数我们可以把它当作方法使用
varobj=newObject();
obj.say=function(){
.....
}
obj.say();
而function实际上就是对象(即Function类型的实例)
functionresult(num1,num2){
returnnum1+num2;
}
varresult=newFunction("num1","num2","returnnum1+num2");
以上执行效果是一样的,同时functionresult还可以这样写(即函数表达式)
varresult=function(num1,num2){
returnnum1+num2;
}
这俩种写法的唯一区别是function是优先执行,而函数表达式是代码执行到才执行,另外每个函数内部都有一个类似数组的arguments对象
函数执行动态参数,即
functionresult(){
returnarguments[0]+arguments[1];
}
result(1,2);
arguments在动态传递参数方面经常使用
既然说function是对象,那么它应该也具体属性
functionperson(){
....
}
person.name="xxxx";
person.say=function(){
alert(this.name);
}
person.say();//alert("xxxx")
我们还可以把它当成类,而函数体相当于构造函数
functionPerson(nm){
this.name=nm;
this.say=function(){
alert(nm);
alert(this.name);
}
}
varp1=newPerson("ygm1");
p1.say();//alertygm1ygm1
varp2=newPerson("ygm2");
p2.say();//alertygm2ygm2
注意这里要用this.name因为this代表的是当前对象,如果直接alert(name)求的是window对象的属性,同时传进来的参数nm在方法say中可以直接用,其实这涉及到作用域链,每个function体就是一个作用域,子域可以访问到父域的属性,而反过来却不行(其实也是可以取到的,设计到闭包一些知识,这里不做详解..)
与其他一些OO语言相比,每个类都可以有一些静态属性或方法,而javascript通过原型来模拟以达到每个对象共享其属性
functionPerson(num){
.....
}
Person.prototype.name="ygm";
alert(newPerson().name);
但OO语言的静态方法都是由类去调用,不能实例化本身的,javascript中由于其特殊性恰好相反
注意这里alertPerson的name属性,如果函数体内没有查找到name则会到原型中去找,如果查找到则会屏蔽原型中的name直接返回其值
其实每创建一个function的同时也创建了一个原型对象,而原型对象引用自object,所以object是所有对象的基类
我们可以重写原型对象
Person.prototype=newParentPerson();
Person的原型对象指向ParentPerson对象,而ParentPerson对象又指向自己的原型对象...,也就形成了原型链...
好了今天就写到这里...
相关文章
- TypeScript(node)连接使用MySQL(JavaScript也一样)
- 【JavaScript】执行上下文与作用域、作用域链
- Javascript与MATLAB联合编程应用实例【AppDesigner开发必备】
- JavaScript验证字符串是否包含英文字符、数字或者汉字代码实例详解编程语言
- javascript eval动态变量的方法详解编程语言
- JavaScript给汉字排序实例代码
- javascript:void(0)的真正含义实例分析
- javascript中的数字与字符串相加实例分析
- JavaScript对象和字串之间的转换实例探讨
- javascript用户注册提示效果的简单实例
- javascript打印输出json实例
- javascript获取网页标题代码实例
- Javascript和Java获取各种form表单信息的简单实例
- javascript获取函数名称、函数参数、对象属性名称的代码实例
- JavaScript导出Excel实例详解
- javascript数组与php数组的地址传递及值传递用法实例
- javascript中sort()的用法实例分析
- javascript中键盘事件用法实例分析
- 一个JavaScript处理textarea中的字符成每一行实例