多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 什么是对象 对象只是一种特殊的数据类型。对象是一组无序的相关属性和方法组成。 * 属性:事物的特征,对象里的属性就是用来表现该对象具备哪些特征 * 方法:事物的行为,对象里的方法用来表示该对象具备哪些行为 # 创建对象的三种方式 * 利用字面量创建对象 * 利用new Object创建对象 * 利用构造函数创建对象 ``` //第一种创建对象的方法 varobj = {}//创建的空对象 varobj = {        name:"编程语言",        age:18,        sex:"男",        wechat:"biancheng", fun:function(){ console.log("使用微信小程序编程"); } } console.log(obj.name); console.log(obj.fun()); //第二种创建对象的方法 var obj = new Object();//创建空对象 obj.name = "编程语言"; obj.age = 18; obj.fun = function(){ console.log("微信小程序编程") } console.log(obj) obj.fun() //第三种创建对象的方法 function Person(name,age,sex,wechat){ this.name = name; this.age = age; this.sex = sex; this.wechat = wechat; this.fun =function(log){ console.log(log) } } var obj = newPerson("编程语言",18,"男","biancheng"); console.log(obj); obj.fun("使用微信小程序编程"); ``` # new关键字的执行过程 通过构造函数new一个对象 ``` function Person(name,age) { //创建构造函数Person this.name = name; this.age = age; this.action = function (jineng) { console.log(name + "具备" + jineng + "的技能") } } //创建对象1 var obj1 = new Person('编程语言', 18) ``` 这里在new一个对象出来时会执行下面四件事 * 在电脑内存中创建一个空对象 * 让构造函数里的this指向一个新的对象 * 执行构造函数里的代码,给这个新对象添加属性和方法 * 返回新对象 # 对象的使用 ***** ## **1.访问对象的属性** 对象属性的调用语法有两种 * 对象名.属性名 * 对象名['属性名'] ``` //访问对象的属性 var obj = {       name:"编程语言",       age:18 } console.log(obj.name) console.log(obj['name']) ``` ## **2.访问对象的方法** 对象中的方法调用就一种方式:对象名.方法名() ``` var obj = { name: '编程语言', age: 18, code:function(){console.log("对象的方法")} } // obj.code() 就是直接调用obj对象里的code()方法 ``` # 内置对象 **** 内置对象就是指JavaScript自带的一些对象,供开发者使用,这些对象提供了一些常用的功能。开发者可以很方便的使用这些内置对象,不需要关心这些内置对象的实现原理。 常见的内置对象如:Math、Array、Date等 常用的学习文档如下: * MDN [官方地址](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript) * W3cschool [官方地址](https://www.w3school.com.cn/js/index.asp) * 菜鸟教材 [官方地址](https://www.runoob.com/js/js-tutorial.html) #### **内置对象随机数** Math.random() 得到一个大于等于0 小于1之间的随机数;多使用抽奖场景 * 获取两数之间的随机数 (大于等于min小于max) ``` //生成的可能是小数也可能是整数 Math.random() * (max - min) + min console.log(Math.random()* (10-1) +1) //获取随机整数 //加载页面触发事件 onLoad:function(){ //console.log(this.data.list) //console.log(Math.PI) console.log(this.getRandomInt(1,100)) }, // getRandomInt(min,max){ min\=Math.ceil(min); max\=Math.floor(max); //不包括最大值,包含最小值 returnMath.floor(Math.random() \* (max\-min) +min); } ``` ## Date日期对象 Date对象是一个构造函数对象,必须使用new对象来创建需要使用的对象后才能使用。 创建日期对象的四种方法 ``` new Date() new Date(year, month, day, hours, minutes, seconds, milliseconds) new Date(dateString) new Date(milliseconds) ``` ### **获取日期的方法** | 方法 | 描述 | | --- | --- | | getDate() | 以数值返回天(1-31) | | getDay() | 以数值获取周名(0-6) | | getFullYear() | 获取四位的年(yyyy) | | getHours() | 获取小时(0-23) | | getMilliseconds() | 获取毫秒(0-999) | | getMinutes() | 获取分(0-59) | | getMonth() | 获取月(0-11) | | getSeconds() | 获取秒(0-59) | | getTime() | 获取时间(从1970年1月1日至今) | ``` var date = new Date(); console.log(date.getTime())     //返回1619074784197 从1970年1月1日到现在的时间差,单位毫秒 console.log(date.getFullYear()) //2021 console.log(date.getDay())      //4 console.log(date.getHours())    //15 console.log(date.getMilliseconds())    //202 console.log(date.getMinutes())    //202 console.log(date.getMonth())    //3 获取的月份是从0开始所有获取的是上个月 console.log(date.getSeconds())    //50 var ymd = date.getFullYear() +'年'+ (date.getMonth()+1) +'月'+date.getDate() +'日'; var his = date.getHours() +'时'+date.getMinutes() +'分'+date.getSeconds() +'秒'; console.log(ymd,his); //2021年4月22日 15时24分55秒 ``` ### **日期设置方法** | 方法 | 描述 | | --- | --- | | setDate() | 以数值(1-31)设置日 | | setFullYear() | 设置年(可选月和日) | | setHours() | 设置小时(0-23) | | setMilliseconds() | 设置毫秒(0-999) | | setMinutes() | 设置分(0-59) | | setMonth() | 设置月(0-11) | | setSeconds() | 设置秒(0-59) | | setTime() | 设置时间(从1970年1月1日至今的毫秒数) | ``` //设置日期 var date = new Date(); date.setFullYear(2022); console.log(date.getFullYear());//2022 ``` ### **倒计时案例** ``` var dateNow = new Date(); //现在的时间 var dateEnd = newDate('2021-04-22 18:00:00'); //设置下午六点为结束时间 var time = dateEnd.getTime() - dateNow.getTime();  //现在的时间到结束时间的毫秒数 var minutes = Math.ceil(time/60000); //现在的时间到结束时间的分钟数(1000毫秒=1秒) var info = parseInt(time/1000/60/60%24) +'小时'+parseInt(time/1000/60%60) +'分'+Math.ceil(time/1000%60) +'秒'; console.log(dateNow); //Thu Apr 22 2021 16:12:58 GMT+0800 (中国标准时间) console.log(info); //1小时47分2秒 ```