当前位置: 移动技术网 > IT编程>开发语言>JavaScript > javascript引用类型基础讲解

javascript引用类型基础讲解

2019年01月22日  | 移动技术网IT编程  | 我要评论

引用类型

function类型;

1,命名方式:

函数声明语法定义: function sum(){} 函数表达式定义: var sum = function(){}; function构造函数:var sum = new function("num1","num2","return num1 + num2");//因为会导致解析两次代码(一解析常规ecmascript代码,二解析传入构造函数中的字符串),影响性能

2 没有重载,同名函数后者会覆盖前者

3 函数声明和函数表达式的区别:解析器会先读取函数声明,并在执行任何代码之前可用;而函数表达式需要等到解析器执行到所在代码行,才会被解析执行

    alert(sum(10,10));
    function sum(num1,num2){return num1+num2}
    //但是 函数表达式会报错
    var sum = function(num1,num2){return num1+num2}; //报错

4 可作为值

因为函数名本身就是变量,可用作为参数传给另一个函数,也可以作为另一个函数的结果返回

    function add(num){return num+10;}
    var result = callsome(add,10);//函数作为参数
    console.log(result);//20
//--------函数作为另一个函数的结果返回---------------------
    function test(prop){
  return function(obj1,obj2){
    var value1 = obj1[prop];
    var value2 = obj2[prop];
    if(value1 < value2){
      return -1;
    }else if(value1 > value2){
      return 1;
    }else {
      return 0;
    }
  };
}
var data = [{name:"nick",age:10},{name:"lick",age:20}];
data.sort(test("name"));
console.log(data[0].name + "||" + data[0].age);//lick||20
data.sort(test("age"));
console.log(data[0].name + "||" + data[0].age);//nick||10

5函数内部属性:这里有两个特殊对象

1)arguments:保存函数参数;关于callee属性,它是一个指针,可以指向这个arguments对象的函数;

    //消除耦合现象
    function test(num){
        if(num<=1){return 1;}else{return num*arguments.callee(num-1)}
    }

2)this:引用对应函数执行环境对象

6函数属性和方法:

1)length属性表示接受参数的个数function test(num){alert(num);} alert(test.length);//1

2)prototype

3)apply()

4)call()

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网