函数, arguments对象, eval,静态成员和实例成员

时间:2024-12-10 14:35:20

函数创建:

3种创建函数的方式
    * 直接声明函数

function funcName(/*参数列表*/){
//函数体
}

* 函数表达式

var funcName = function(){

        };

* new Function()

var func = new Function();
var 函数名 = new Function(); //创建一个空的函数
var 函数名 = new Function("函数体") //创建一个没有参数的函数,只有一个参数就是函数体
var 函数名 = new Function("参数1","参数2", "参数3",..."函数体")
//当给Fucntion传多个参数的时候,最后一个参数为函数体,前面的参数为创建出来的函数的形参
//Function接收的所有的参数都是字符串类型的!!!
arguments对象
arguments对象是函数内部的一个对象,在函数调用的时候,系统会默认的将所有传入的实参存入该对象
注意:不管有没有形参,实参都会被存入该对象
arguments.length  表示传入实参的个数
arguments.callee 指向当前函数  (匿名函数中使用,因为他没有名字)
eval
可以将字符串转换成js代码并执行
注意:当使用eval解析JSON格式字符串的时候,要注意,会将{}解析为代码段
1.可以在JSON格式字符串前面拼接 "var 变量名 ="
    eval("var 变量名 =" + JSON格式的字符串);
2.可以在JSON格式字符串前后拼接()
    eval("("+JSON格式的字符串+")")
Function和eval有什么区别
     共同点,都可以将字符串转换成js代码
     不同点
        1.Function 创建出来的是 函数 并不会直接调用,只有当手动去调用创建出来的函数的时候,才会执行
        2.eval 把字符串转成代码之后,直接就执行了
静态成员和实例成员
静态成员
    通过构造函数去访问的属性和方法就是静态成员
    Person.成员
实例成员
    通过对象(实例)去访问的属性和方法就是实例成员
    var p = new Person();  p.成员
$("#id").css(); 实例成员
$("#id").text();
$.trim(); 静态成员
$.each();
$.extend();