JS:day11

一、函数

1.声明还是表达式


2.函数就是值


数组排序的封装函数
GLOBAL.namespace("Array");

GLOBAL.Array.arraySort=function(arr){
  arr.sort(function(a,b){
      return a-b;
  })
};

3.参数

arguments 是一个类似于数组的对象,其本质并不是对象。
arguments 对象的长度是由传入的参数个数决定的,不是由定义函数时的命名参数的个数决定的。


sun()函数接受任意数量的参数并在while循环中遍历它们的值来求和。

4.重载

本质:让一个函数可以接收一个字符串的签名和接收两个参数的签名


5.对象方法(this)

①this对象(3种)

1.函数直接调用,this指向window


2.在事件中,this指向执行事件的对象


3.在函数中,this指向执行事件的函数

②改变this(3种)

1.call() 方法

    function sayNameForAll(lable){
        console.log(lable + ":" + this.name);
    }
    var a = {
        name:"anan"
    };
    var b = {
        name:"anqi"
    };


//     call 方法
      sayNameForAll.call(this,"golbal");
      sayNameForAll.call(a,"a");
      sayNameForAll.call(b,"b");

2.apply() 方法(数组方法)

//    apply 方法
     sayNameForAll.apply(this,["global"]);
     sayNameForAll.apply(a,["a"]);
     sayNameForAll.apply(b,["b"]);

3.bind() 方法(函数方法)

//    bind() 方法
    var sayNameFora1 = sayNameForAll.bind(a);
    sayNameFora1("a");

    var sayNameForb1 = sayNameForAll.bind(b,"b");
    sayNameForb1();

    b.sayName = sayNameFora1;
    b.sayName("b");

你可能感兴趣的:(JS:day11)