**貼出來
1 function cat()
3 return this;
4 }
5 cat.getcolor = function()
6 cat.prototype.getcolor = function()
7 var getcolor = function()
8 function getcolor()
910 // 輸出結果
11 cat.getcolor();
12 getcolor();
13 cat().getcolor();
14 getcolor();
15 new cat.getcolor();
16 new cat().getcolor();
17 new new cat().getcolor();
首先我們來理理這些**的執行順序:
先宣告1、var getcolor [7]
2、function cat() [1]
3、function getcolor() [8]
接下來順序執行**
4、cat.getcolor = function() [5]
5、cat.prototype.getcolor = function() [6]
6、getcolor = function() [7]
7、cat.getcolor(); [11]
8、getcolor(); [12]
9、cat().getcolor(); [13]
10、getcolor(); [14]
11、new cat.getcolor(); [15]
12、new cat().getcolor(); [16]
13、new new cat().getcolor(); [17]
所以,cat.getcolor() //2
∵根據4,cat.getcolor被賦值了乙個function,現在執行這個function則列印出2.
【涉及物件的靜態方法】
getcolor() //4
∵根據6,getcolor被賦值了乙個function,現在執行這個function則列印出4.
【涉及變數的宣告和賦值】
cat().getcolor() //1
∵這個是先執行cat(),再點上getcolor的;cat()之後是返回this,cat沒有被例項化,所以this是window,同時因為cat()執行之後getcolor被重新賦值,所以列印出1.
【涉及函式的執行、變數作用域、this】
getcolor() //1
∵前面的**把getcolor改變了,所以列印了1
【涉及變數的賦值】
new cat.getcolor();//2
這個先執行cat.getcolor()
可以這麼理解:
var a = cat.getcolor; // a = cat.getcolor = function()
new a(); //列印2
【涉及變數的賦值、物件的例項化】
new cat().getcolor();//3
這個先new cat(),例項化了,例項化的getcolor()是cat.prototype.getcolor = function()
可以這麼理解:
var a = new cat(); // 例項化cat
a.getcolor(); // 例項執行這個:cat.prototype.getcolor = function()
【涉及物件的例項化,例項的原型方法】
new new cat().getcolor();//3
這個先new cat(),例項化了,例項化的getcolor()是cat.prototype.getcolor = function(),再new
可以這麼理解:
var a = new cat(); // 例項化cat
var b = a.getcolor; // 例項執行這個:b = cat.prototype.getcolor = function()
new b(); // 列印3
【涉及變數的賦值,物件的例項化,例項的原型方法】 函式練習題
1.打字軟體的正確率 編寫函式,計算字串匹配的準確率,類似於打字軟體 orginstr為原始內容,userstr為使用者輸入內容 2.模擬輪盤 遊戲 轉盤分為三部分 一等獎 二等獎和三等獎 輪盤轉的時候是隨機的,如果範圍在 0,0.08 之間,代表一等獎 如果範圍在 0.08,0.3 之間,代表二等...
js練習題(一)
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。var addtwonumbers fun...
JS語句練習題
var a prompt 輸入乙個數字 var b prompt 輸入乙個 中的任意運算子 var c prompt 再輸入乙個數字 if b else if b else if b else 方法二 var a prompt 輸入乙個數字 var b prompt 輸入乙個 中的任意運算子 var...