1. 變數聲明提升 / 變數提升
-- 通過var定義(聲明)的變數,在定義語句之前就可以訪問到
-- 值:undefined
2. 函數聲明提升 / 函數提升
-- 通過function聲明的函數,在之前就可以直接調用
-- 值:函數定義(對象)
bingzhichen 發表在 痞客邦 留言(0) 人氣(30)
1. 原型鏈
-- 訪問一個物件的屬性時,
---- 先在自身屬性中查找,找到返回
---- 如果沒有,再沿著__proto__這條鏈向上查找,找到返回
---- 如果最終沒找到,返回undefined
-- 別名: 隱式原型鏈
-- 作用: 查找物件的屬性(方法)
2. Function = new Function():實例對象才有隱式原型(屬性)__proto__,
而實例對象的隱式原型(屬性)__proto__ 等於 構造函數的顯式原型(屬性)prototype
3. 所有函數的隱式原型(屬性)__proto__都是一樣的
bingzhichen 發表在 痞客邦 留言(0) 人氣(17)
1. 每個函數function都有一個prototype,即顯式原型(屬性)
2. 每個實例對像都有一個__proto__,可稱為隱式原型(屬性)
3. 對像的隱式原型的值為其對應構造函數的顯式原型的值
4. 總結:
-- 函數的prototype屬性:在定義函數時自動添加的,默認值是一個空Object實例對象
-- 物件的__proto__屬性:創建對像時自動添加的,默認值為構造函數的prototype屬性值
-- 程序員能直接操作顯式原型,但不能直接操作隱式原型(ES6之前)
bingzhichen 發表在 痞客邦 留言(0) 人氣(19)
1. 函數的prototype屬性
-- 每個函數都有一個prototype屬性, 它默認指向一個Object空物件(即稱為: 原型物件)
-- 原型對像中有一個屬性constructor, 它指向函數物件
2. 給原型對像添加屬性(一般都是方法)
-- 作用: 函數的所有實例對像自動擁有原型中的屬性(方法)
-- 原型上面的方法是給實例對象使用的
bingzhichen 發表在 痞客邦 留言(0) 人氣(18)
1. 函數的this是什麼?
-- 任何函數本質上都是通過某個物件來調用的,如果沒有指定就是window
-- 所有函數內部都有一個變量this
-- this的值是調用函數的當前物件
bingzhichen 發表在 痞客邦 留言(0) 人氣(17)
1. 理解
-- 全稱: Immediately-Invoked Function Expression 匿名函數自調用
2. 作用
-- 隱藏實現
-- 不會污染全域的命名空間
-- 用來編寫js模塊
bingzhichen 發表在 痞客邦 留言(0) 人氣(129)
1. 什麼函數才是回調函數?
(1)我定義的
(2)我沒有調
(3)最終它執行了(在某個時刻或某個條件下)
2. 常見的回調函數?
-- DOM事件回調函數 ==> this:發生事件的DOM元素(用戶操作的元素)
-- 定時器回調函數 ==> this:window
-- ajax請求回調函數
-- 生命週期回調函數
bingzhichen 發表在 痞客邦 留言(0) 人氣(69)
1. 什麼是函數?
-- 具有特定實現功能的n條語句封裝體
-- 只有函數是可以執行的,其他類型的數據不能執行
2. 為什麼要用函數?
-- 提高code的重複使用率
-- 便於閱讀交流
3. 如何定義函數?
-- 函數聲明
-- 表達式
bingzhichen 發表在 痞客邦 留言(0) 人氣(0)
1. 什麼是物件?
-- 多個數據的封裝體
-- 用來保存多個數據的容器
-- 一個物件代表現實中的一個事物
2. 為什麼要用物件?
-- 統一管理多個數據
3. 物件的組成?
-- 屬性:屬性名(字串)+ 屬性值(任意類型)組成
-- 方法:一種特別的屬性,屬性值是函數
bingzhichen 發表在 痞客邦 留言(0) 人氣(10)
問題: var a = xxx, a記憶體中到底保存的是什麼?
-- xxx是基本數據,保存的就是這個數據
-- XXX是物件,保存的物件的地址值
-- XXX是一個變數,保存的是xxx的記憶體內容,可能是基本數據,也可能是地址值
bingzhichen 發表在 痞客邦 留言(0) 人氣(10)