JavaScript-基础:2 基本语法5 对象类型
程序员文章站
2022-07-15 16:58:47
...
1.
对象:
ps:string是一个特殊的引用类型。
2.
创建object对象
示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>object对象</title>
</head>
<body>
<script>
// 创建对象的两种方式
// 1. 使用new操作符来创建对象
var t = new Object(); // 创建了一个object对象。
// new:创建一个对象,然后对象执行object函数,最后返回一个对象实例。
// js是一个动态语言,可以随时添加属性和方法。
t.age = 19;
t.name = 'jeck';
t.run = function(){ // 匿名函数
console.log("奔跑。。");
}
// 对象使用
// 第一种方式:使用点的方式
console.log(t.age);
t.run();
// 第二种方式:使用中括号的方式
console.log(t['age']);
t['run']();
// 2.对象字面量
var a = {
name: 'lili',
show: 'hello',
do: function(){
console.log("hello lili!");
}
};
// 对象使用:
console.log("使用点的方式:", a.name);
console.log("使用中括号的方式:", a['show']);
console.log("使用点的方式");
a.do();
console.log("使用中括号的方式");
a['do']();
</script>
</body>
</html>
ps:重复定义的属性和方法会被后面的覆盖!
3.
3.1对象的动态删除属性(很少用,了解)
delete 对象属性
(或者 delete t['age'])
ps:只能删除用户自定义的属性
3.2通过in运算符检测属性是否属于对象的自定义属性
3.3枚举对象自定义的属性
var a = {
name: 'lili',
show: 'hello',
do: function(){
console.log("hello lili!");
}
};
// 对象使用:
console.log("使用点的方式:", a.name);
console.log("使用中括号的方式:", a['show']);
console.log("使用点的方式");
a.do();
console.log("使用中括号的方式");
a['do']();
// 删除属性
delete a.name;
console.log(a);
// in 检测属性是否属于对象的自定义属性
console.log('name' in a);
// 枚举对象的自定义属性
console.log("枚举对象的自定义属性")
for (var i in a){
console.log(i);
console.log(a[i]); // 这里只能用中括号的方式!
}
4.对象原型与构造函数
ps:
- 变量m可以使用原型里面的属性和方法。
- Object.prototype 是语言规范里存在的。
- m.__proto__是浏览器自己实现的(大部分浏览器都实现了,但是自己写代码最好不要用)
object的原型属性和方法(常用的):
- toString() 转换成字符串
- toLocalString() 转换成本地化对应的字符串
- valueOf() 获取它的值
- hasOwnProperty() 判断属性是否是自己创建添加的。
5 示例代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>对象练习</title>
</head>
<body>
<h1>封装猫对象,封装一个数学对象</h1>
<script>
//1 封装一个猫对象:
// 猫拥有:颜色、重量、名字、ID等属性,还拥有跑、跳、叫等行为。
// var cat = new Object() //这种方法也可以,不过采用下面的
var cat = {
color: 'red',
weight: 20,
name: 'lili',
ID: 1234,
run: function(){
// this就相当于cat对象,在对象的方法中使用this代表当前的对象。
console.log(this.name, '奔跑。');
},
jump: function(){
console.log('jump!');
}
};
cat.run();
// 输出猫的所有自定义属性
console.log('输出猫的所有自定义属性:');
for (var pro in cat){
console.log(pro);
}
//2 封装一个数学对象
var mymath = {
PI: 3.1415925,
sum: function(n){ // 求1到n的和
var res = 0;
for(var i = 0; i<=n; i++){
res += i;
}
return res;
},
factorial: function(n){
// 求1到n的阶乘
var res = 1;
for(var i = 1; i<=n; i++){
res *= i;
}
return res;
}
};
console.log("mymath pi: ", mymath.PI);
console.log("mymath sum 100", mymath.sum(100));
console.log("mymath factorial 10", mymath.factorial(10));
</script>
</body>
</html>