12.10 改变this的指向

1.解决函数内this指向

  1.可以在函数外提前声明变量_this/that=this

  2.通过apply和call来修改函数内的this指向

    (1)二者区别   用法是一样的,就是参数形式不一样    fn.call(obj,a,b)/fn.apply(obj,[a,b])

    (2)二者代表的是将函数内的this换成obj之后把fn调用

  3.bind修改函数内的this

      fn.bind(obj,a,b)只是替换了this但是不调用fn,返回的还是函数

      fn.bind(obj,a,b)()

2.

相当于写成

为什么用了call之后里面的names还是张三不是李四??

  fn.call(obj)是fn继承了obj中的所有属性,只要是继承的可以看成是公有的,天生自带的是私有的,在使用的时候,私有的有就不会找公有的。

3.变量交换

找出数组中的最大项和最小项

  var a=[45,26,15,54,36,8,4];

1.借助math中的max

  Math.max.apply(null,a)返回值就是最大值

2.借助数组中的

   

3.假设法

  

对数组排序的方法

  1.借助array中的sort(function(a,b){return a-b})

   2.冒泡排序

  

二分查找

  4.Math数值对象

    js自带的类    array  number   string  function   date   math  regexp   boolean

math类math对象  有研究一堆的属性和方法

      数学中的弧度和角度

    1.弧度的π      Math.PI

       2 .返回平方根   Math.sprt(16)

    3.Math.abs(x)返回的绝对值

    4.Math.ceil(x)返回x的上舍入

    5.Math.floor(x)返回x的下舍如

    6.Math.max(a,b,c,d)返回a,b,c,d中的最大值  a,b,c,d必须是数字

    7.Math.min(a,b,c,d)返回a,b,c,d中的最小值a,b,c,d必须是数字

    8.Math.random()返回0-1之间的随机数

    9.Math.round(x)返回对x四舍五入后的值

    10.Math.sin(x)返回x的正弦值    对边比斜边

    11.Math.cos(x)返回x的余弦值    邻边/斜边

    12.Math.tan(x)返回x的正切值     对边/邻边

    13.Math.asin(x)

    14.Math.acos()

    15Math.atan()

原文地址:https://www.cnblogs.com/jiangningjn/p/10156018.html