在Js中,对象是一组无序的相关属性方法的集合,所有事物都是对象,例如字符串、数值、数组、函数等。
对象是由属性和方法组成的。
- 属性:事物的特征,在对象中用属性来表示(常用名词)
- 方法:事物的行为,在对象中用方法来表示(常用动词)
创建对象(object)的三种方法
- 利用字面量创建对象
- 利用 new Object 创建对象
- 利用构造函数创建对象
利用字面量创建对象
- 对象的字面量是{ }
- var obj = { }; // 创建了一个空的对象
var obj = { uname: "张三疯", age: 18, sex: "男", sayHi: function () { console.log("hi~"); }, }; console.log(obj);
var obj = new Object(); obj.uname = "张三疯"; obj.age = 18; obj.sex = "男"; obj.sayHi = function () { console.log("hi~"); };
使用对象
- 调用对象的属性 对象名.属性名 console.log(obj.uname);
- 调用对象的属性方法2 对象名['属性名'] console.log(obj['age']);
- 调用对象的方法 对象名.方法名()obj.sayHi();
var obj = { uname: "张三疯", age: 18, sex: "男", sayHi: function () { console.log("hi~"); }, };
构造函数
- 把对象里面一些相同的属性和方法抽象出来封装到函数里面
- 利用构造函数创建对象的过程也称为对象的实例化
- 构造函数名字首字母大写
- 构造函数不需要return 就可以返回结果
- 调用构造函数必须使用 new
- 只要 new Star()调用函数就创建一个对象
- 属性和方法前面必须添加 this
// 构造函数的语法格式
function 构造函数名() {
this.属性 = 值;
this.方法 = function() {}
}
// 调用构造函数
new 构造函数名();
function Star(uname, age, sex) {
this.name = uname;
this.age = age;
this.sex = sex;
this.sing = function (sang) {
console.log(sang);
};
}
var ldh = new Star("刘德华", 28, "男");
ldh.sing("冰雨");
console.log(ldh.name);
new 的作用
- 在内存中创建一个新的空对象
- 让this指向这个新的对象
- 执行构造函数里面的代码,给这个新对象添加属性和方法
- 返回这个新对象(所以构造函数里面不需要return)
遍历对象
for(变量 in 对象) { }
var obj = {
name: "pink老师",
age: 18,
sex: "男",
};
for (var k in obj) {
console.log(obj[k]);
}
内置对象
内置对象就是指Js语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性和方法) 可以查阅文档 MDN
随机点名
function getRandom(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
// console.log(getRandom(1, 10));
//随机点名
var arr = ["张三", "李四", "王五", "李白"];
console.log(arr[getRandom(0, arr.length - 1)]);
猜数字小游戏
function getRandom(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
var random = getRandom(1, 10);
var i = 1;
while (i < 11) {
var num = prompt("你来猜? 输入1-10之间的一个数字");
i++;
if (num > random) {
alert("你猜大了");
} else if (num < random) {
alert("你猜小了");
} else {
alert("你好帅哦,猜对了");
break;
}
}
alert("好笨哦都给你十次机会啦还没猜到");
日期对象的使用
Date()日期对象 是一个构造函数 必须使用new 来调用创建我们的日期对象
需要获取日期的指定部分,要手动得到这种格式
方法名 | 说明 |
getFullYear() | 获取当年 |
getMonth() | 获取当月(0-11) |
getDate() | 获取当天日期 |
getDay() | 获取今天星期几(周日0-周六6) |
getHours() | 获取当前小时 |
getMinuters() | 获取当前分钟 |
getSeconds() | 获取当前秒钟 |