理解JavaScript的function
2024-07-23 13:00:39 220人阅读
JavaScript中最有特色而又让你困惑的function算一个了,下面看一下常用操作:中原娱乐城
JavaScript中的函数我们可以把它当作方法使用
而function实际上就是对象(即Function类型的实例)
1 | function result(num1, num2) { |
4 | var result = new Function( "num1" , "num2" , "return num1+num2" ); |
以上执行效果是一样的,同时function result还可以这样写(即函数表达式)
1 | var result= function (num1,num2){ |
这俩种写法的唯一区别是function是优先执行,而函数表达式是代码执行到才执行,另外每个函数内部都有一个类似数组的arguments对象,函数执行动态参数,即:
2 | return arguments[0]+arguments[1]; |
arguments在动态传递参数方面经常使用。
既然说function是对象,那么它应该也具体属性。
我们还可以把它当成类,而函数体相当于构造函数
08 | var p1= new Person( "ygm1" ); |
10 | var p2= new Person( "ygm2" ); |
注意这里要用this.name 因为this代表的是当前对象,如果直接alert(name) 求的是window对象的属性,同时传进来的参数nm在方法say中可以直接用,其实这涉及到作用域链,每个function体就是一个作用域,子域可以访问到父域的属性,而反过来却不行(其实也是可以取到的,设计到闭包一些知识,这里不做详解..)
与其他一些OO语言相比,每个类都可以有一些静态属性或方法,而javascript通过原型来模拟以达到每个对象共享其属性。
4 | Person.prototype.name = "ygm" ; |
5 | alert( new Person().name); |
但OO语言的静态方法都是由类去调用,不能实例化本身的,javascript中由于其特殊性恰好相反。
注意这里alertPerson的name属性,如果函数体内没有查找到name则会到原型中去找,如果查找到则会屏蔽原型中的name直接返回其值。
其实每创建一个function的同时也创建了一个原型对象,而原型对象引用自object,所以object是所有对象的基类。
我们可以重写原型对象 Person.prototype=new ParentPerson();
Person的原型对象指向ParentPerson对象,而ParentPerson对象又指向自己的原型对象...,也就形成了原型链...
理解JavaScript的function
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉:
投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。