題目:
————————————–我是思考分界線——————————————–
知識點:
1、建構函式
2、建構函式-擴充套件
3、原型規則和示例
4、原型鏈
5、instanceof
1、建構函式
function
foo(name.age)
var f = new foo('zhangsan',20);
2、建構函式–拓展
var a = {}其實是var a = new object()的語法糖;
var a = 其實是 var a = new array()的語法糖;
function foo(){}其實是var foo = new function()的語法糖;
使用instanceof判斷乙個函式是否屬於乙個變數的建構函式;
3、原型規則和示例
5條原型規則
(1)、所有的引用型別(陣列,物件,函式),都具有物件特性,即可以自由拓展屬性(除了』null『意外);
(2)、所有的引用型別(陣列,物件,函式),都有乙個`'__proto__'`(隱式型別)屬性,屬性值是乙個普通的物件。
(3)、所有的函式,都有乙個prototype(顯示原型),屬性值也是乙個普通的物件。
(4)、所有的引用型別(陣列、物件、函式),`'__proto__'`屬性指向他的建構函式』prototype『屬性值。
//建構函式**示例
function
foo(name ,age)
foo.prototype.alertname = function
()//建立示例
var f = new foo('zhangsan')
f.printname = function
()//測試
f.printname();
f.alertname();
var item
for(item in f)
}
原型鏈:
//建構函式**示例
function
foo(name ,age)
foo.prototype.alertname = function
()//建立示例
var f = new foo('zhangsan')
f.printname = function
()//測試
f.printname();
f.alertname();
f.tostring();//要去 f.__proto__.__proto__ 中查詢
//即要去object.prototype中找
//即要去object.__proto__ 會找到null
instanceof:
判斷引用型別屬於哪個建構函式的方法
f instanceof foo true
判斷邏輯是:f的'__proto__'
一層一層往上找,能否找到對應的foo.prototype
f instanceof
object
true
解題:
1、如何準確判斷乙個變數是陣列型別
arr instanceof array
2、 寫乙個原型鏈整合的例子
//封裝乙個dom查詢的例子
function
elem
(id)
elem.prototype.html = function
(val)else
}elem.prototype.on = function
(type,fn)
var div1 = new elem ('div1)
div.html('
hello
')div1.on('click',function())
3、 描述new乙個物件的過程
建構函式;
(1)、建立乙個新物件
(2)、 this指向這個新物件
(3)、 執行**,即對this賦值
(4)、返回this
4、zepto(或其他框架)原始碼中如何使用原型鏈
閱讀原始碼是高效提高技能的方式
但不能埋頭苦鑽,有技巧
先去網上搜,,比如jquery原始碼分析什麼的,會有結構
JS原型與繼承(三) 原型鏈
先把基本 拿出來 function person name var p1 newperson 張三 很重要的幾個知識點 1.在物件中查詢乙個屬性時,會先從本身查詢,如果查詢不到會到prototype中查詢。即可以引申,所有物件中都有constructor 這個屬性是在prototype中的 2.原型...
設計模式(三) 原型模式
用原型例項指定建立的種類,並通過複製這些原型建立新的物件。原型模式的本質上就是物件拷貝。1 類初始化需要消耗非常多的資源,這個資源包括資料 硬體資源等,通過原型複製這些消耗。2 通過new產生乙個物件需要非常繁瑣的資料準備或訪問許可權,這時可以使用原型模式。3 乙個物件需要提供給其他物件訪問,而且各...
設計模式 三 原型模式
原理 示例 原型模式 prototype pattern 是用於建立重複的物件,同時又能保證效能。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。簡單的說,就是轉殖乙個物件。適用於大物件的建立,因為建立乙個大物件需要很大的開銷,如果每次new就會消耗很大,原型模式僅需記憶體拷貝即可...