1
我們說到 js的關鍵字this代表的是--》呼叫該函式的物件(通俗易懂的一句話:當前的函式屬於誰)
這個說法沒毛病:四海皆知嘛。
但是有一點不知:
一:函式前面有new的時候
1
這次的改進:函式createpreason()前面有new。函式內部的調整
1.去掉了函式裡面的物件建立
2.去掉了return 返回
3.物件的呼叫換成了this
為什麼這樣改進呢?改進後的js內部如何執行的呢?
假象系統給我們函式內部新增了物件與return返回,我們只需要在裡面新增想要的資料就行了。
乙個總結:1.函式外面加new,裡面不加new。相反:函式外面不加new,裡面加new.
2.函式前面加new,系統會自動在函式的內部新建立乙個物件賦值給this
再舉乙個例子加深印象:
1function
show ()
4 show(); //
執行到這一步列印出:window (全域性函式預設屬於window, window.show() )56
new show() //
執行到這一步列印出:object78
/**9function show()
1415
new show(); //執行到這一步列印出:objec
16** /
好了this與new講的差不多了,繼續看下面
2.解決浪費--引出原型
還好現在的電腦記憶體大,夠用,所以浪費的起那是任性,但是做程式必須做到能省則省的原則
案例求乙個陣列的和:
1 var arr1 = new array(22,44,1,6,7); //也可以使用直接量建立 var arr1 = [22,44,1,6,7];
2 arr1.sum = function()
8 return
result;
9}10 alert(arr1.sum()); //
80
要是我有很多個這樣的陣列要求和呢?
我們只是給arr1新增了乙個求和的方法其他的陣列沒有這個方法,所以不能求其他的陣列和(有人說還不如使用乙個函式呢---恩,有道理。)
接下來就是該網上,書上...廣泛流程的原型登場了。
js基礎 工廠方法
doctype html html lang en head meta charset utf 8 meta name viewport content width device width,initial scale 1.0 title document title script 工廠方法 簡稱工...
3 工廠方法模式
簡單工廠方法不符合開閉原則,增加按鈕功能需要修改工廠類。現在對該系統進行修改,不再設計乙個按鈕工廠類來統一負責所有產品的建立,而是將具體按鈕的建立過程交給專門的工廠子類去完成,我們先定義乙個抽象的按鈕工廠類,再定義具體的工廠類來生成圓形按鈕 矩形按鈕 菱形按鈕等,它們實現在抽象按鈕工廠類中定義的方法...
3 工廠方法模式
1.定義 每個具體產品對應乙個具體的工廠類,工廠類中包含生產該產品的全套方法。2.具體角色 抽象產品角色 具體產品角色 抽象工廠角色 具體工廠角色 from abc import abcmeta,abstractclassmethod,abstractmethod class payment met...