JS / call +apply+arguments+Date对象

目录

call()和apply()

arguments

Date对象

创建一个指定的时间对象

getDate()

getDay()

getMonth()

getFullYear()

getHours()

getMinutes()

getSeconds()

getTime()

获取当前时间的时间戳


call()和apply()

这两个方法都是函数对象的方法,需要通过函数对象来调用

function fun(){

alert("hi")

}

fun.call()

fun.apply()

fun()

都会调用该函数执行

在调用call和apply方法时可以将一个对象指定为第一个参数

此时这个对象将会成为函数执行时的this

var obj={}

fun.call(obj)

如果函数中有this,则指向obj

function fun(a,b){

console.log(a,b)

}

call()方法可以将实参在对象之后依次传递,apply需要将实参封装到数组中统一传递

fun.call(obj,2,3) //23

fun.apply(obj,[2,3]) //23

this复习:

以函数形式调用时,this永远是window

以方法形式调用时,this是调用方法的对象

以构造函数的形式调用时,this是新创建的那个对象

以call和apply调用时,this是指定的那个对象

arguments

在调用函数时,浏览器每次都会传递两个隐含的参数:

        - 函数的上下文对象this

        - 封装实参的对象是arguments

                - arguments是一个类数组对象,可以通过索引来操作数据,也可以获取长度

                - 在调用函数时,我们所传递的实参都会在arguments中保存

                - arguments.length可以用来获取实参的长度

                - 即使不定义形参,也可以通过arguments来使用实参

                  arguments[0]表示第一个实参 arguments[1]表示第二个实参......

        - arguments.callee这个属性对应一个函数对象,就是当前正在执行的函数对象

Date对象

在JS中使用date对象来表示一个事件

创建一个Date对象

var d = new Date()

console.log(d)

 

如果直接使用构造函数创建一个Date对象,则会封装为当前代码执行的时间

创建一个指定的时间对象

需要在构造函数中传递一个表示时间的字符串作为参数

格式: 月份/日/年 时:分:秒

var d2=new Date("12/03/2016")

 var d2=new Date("12/03/2016 11:10:30")

getDate()

d2.getDate()

获取当前日期对象是几日   2

getDay()

d2.getDay()

返回对象是一周中的某天返回 0-6  ,0表示周日

获取周几 

getMonth()

d2.getMonth()

获取月份 返回0-11  0表示一月 11表示十二月

getFullYear()

获取当前日期对象的年份

getYear只能获取简写年份 2016 则为16

getHours()

获取小时

getMinutes()

获取分钟

getSeconds()

获取秒

getTime()

获取当前日期对象的时间戳

返回一串数字

时间戳指从格林威治标准时间的1970年1月1日 0时0分0秒到当前时间所经过的毫秒数

1s=1000ms

目的是为了统一单位方便存储

计算机底层在保存时间时都是使用时间戳

输出负数是因为系统的北京时间和格林威治时间有八小时时差

 

获取当前时间的时间戳

var time=Date.now()

可以利用时间戳来测试代码执行的性能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值