對象主要具有:行為——方法,特征——屬性。
[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