对象主要具有:行为——方法,特征——属性。
[TOC]
# 1. 对象的创建
<mark>语法1:字面量语法</mark>
```js
// 创建
var object = {
name: 'zs',
age: 18,
sex: true,
sayHi: function () {
console.log(this.name);
}
};
// 调用
object.name; // 或object["name"]
object.sayHi(); // 或object["sayHi"]
```
<mark>语法2:new Object()方式</mark>
```js
// 创建
var person = new Object();
person.name = 'lisi';
person.age = 35;
person.job = 'actor';
person.sayHi = function(){
console.log('Hello,everyBody');
}
// 调用
person.name; // 或 person["name"]
person.age; // 或 person["age"]
person.sayName; // 或 person["sayName"]
```
<mark>语法3:工厂函数</mark>
```js
function createPerson(name, age, job) {
var person = new Object();
person.name = name;
person.age = age;
person.job = job;
person.sayHi = function(){
console.log('Hello,everyBody');
}
return person;
}
var p1 = createPerson('张三', 22, 'actor');
```
或者:
```
function createPerson (name, age) {
return {
name: name,
age: age,
sayName: function () {
console.log(this.name)
}
}
}
```
<mark>语法4:自定义构造函数</amrk>
```js
function Person(name,age,job){
this.name = name;
this.age = age;
this.job = job;
this.sayHi = function(){
console.log('Hello,everyBody');
}
}
var p1 = new Person('张三', 22, 'actor');
```
更好的对象创建方法见:12.4章。
# 2. 对象的遍历与删除
<mark>1. 使用for/in语句遍历对象</mark>
```js
var obj = {};
for (var i = 0; i < 10; i++) {
obj[i] = i * 2;
}
for(var key in obj) {
console.log(key + "==" + obj[key]);
}
```
<mark>2. 删除对象</mark>
```js
function Fun() {
this.name = 'mm';
}
var obj = new Fun();
console.log(obj.name); // mm
delete obj.name;
console.log(obj.name); // undefined
```
- js应用场景
- js组成
- js书写位置
- 浮点数精度问题
- undefined与null的区别
- 数据类型转换
- 运算符优先级
- 代码调试
- 函数
- 函数的定义和调用
- 函数的return细节
- 函数是一种数据类型
- this的指向
- 函数成员
- 函数闭包
- 作用域
- 预解析
- js对象
- 对象的创建与调用
- new关键字
- this关键字
- 构造函数创建对象
- 事件
- 数据类型
- 继承
- 杂项
- 如何阻止标签的默认行为
- 为一个标签绑定或移除任何一个事件
- 如何阻止事件的冒泡行为
- 事件的三个阶段
- 移动元素的条件
- 匀速动画函数封装
- 变速动画函数封装
- 获取元素的css属性值
- 数据类型判断方法
- 创建对象的7种写法
- 如何继承
- 为js内置对象添加原型函数
- 将局部变量转换为全局变量
- call函数的用法
- 沙箱
- 浅拷贝
- 深拷贝
- 对象赋值会改变对象
- 解析URL中的字符串
- 格式化日期
- 获取当前浏览器类型
- Vue3.x
- 调式工具Vue Devtools