2.讀下面**,寫程式結果
function identify ()
function speek ()
var p1 =
var p2 =
identify.call(p1) // 輸出?
identify.call(p2) // 輸出?
speek.call(p1) // 輸出?
speek.call(p2) // 輸出?
3.讀下面**,寫程式結果
function foo (num)
foo.count = 0
for (var i = 0; i < 10; i++)
}console.log('foo.count被呼叫了多少次?:'+foo.count)
4.this到底是什麼?
1、this的繫結和函式的宣告位置沒有關係,只取決於函式的呼叫方式
2、當乙個函式被呼叫時,會建立乙個活動記錄(有時候也稱為執行上下文)。這個記錄會包含函式在**呼叫、函式的呼叫方式、傳入的引數等資訊,this就是這個活動記錄的乙個屬性,會在函式執行的過程中用到
5.讀下面**,寫出執行結果(知識點,預設繫結)
function foo ()
var a = 2
foo() //輸出?
function foo ()
var a = 2
foo() // 輸出?
function foo ()
var a = 2
;(function () )()
6.讀下面**,寫出執行結果(知識點,隱式繫結)
function foo ()
var obj =
obj.foo() // 輸出?
function foo ()
var obj2 =
var obj1 =
obj1.obj2.foo() //輸出?
7.讀下面**,寫出執行結果(知識點,繫結丟失)
function foo ()
var obj =
var bar = obj.foo
var a = '我是全域性屬性a'
bar() //輸出?
function foo ()
function dofoo (fn)
var obj =
var a = '我是全域性變數a'
dofoo(obj.foo) //輸出?
function foo ()
var obj =
var a = '我是全域性變數a'
settimeout(obj.foo, 100) // 輸出
8.讀下面**,寫出執行結果(知識點,call)
function foo ()
var obj =
foo.call(obj) //輸出多少?
思考,如何解決繫結丟失問題?直接使用call方法能不能實現?
9.讀下面**,寫出執行結果(知識點,硬繫結)
function foo (something)
var obj =
var bar = function ()
var b = bar(3) //輸出多少?
console.log(b) //輸出多少?
10.簡單寫乙個通用的輔助函式bind
function foo (something)
function bind(fn, obj)
var obj =
var bar = bind(foo, obj)
var b = bar(3) // 2 3
console.log(b) // 5
11.讀下面**,寫出執行結果(知識點,new繫結)
function foo (a)
var bar = new foo(2)
console.log(bar.a) //輸出多少?
12.讀下面**,寫出執行結果(知識點,箭頭函式的this)
function foo ()
} var obj1 =
var obj2 =
var bar = foo.call(obj1)
bar.call(obj2) //輸出多少?
function foo() , 100)
}var obj =
foo.call(obj) //輸出多少?
13.總結判斷this指向的方法
1. 函式是否在new中呼叫?如果是的話this指向的是新建立的物件
3.函式是否在某個上下文物件中呼叫?如果是的話,this指向的是那個上下文物件
4.如果都不是的話,使用預設繫結,如果在嚴格模式下,繫結到undefined,否則指向全域性物件
js基礎(二) 練習題
1.求字串 現最多字元及次數 var chars dsajhdkjahdkabgadkjasdgahd var o for var i 0 i else 以及將所有字元按屬性名歸類並計數 遍歷物件 var maxnum 0 var maxchar for var k in o console.log...
Python基礎練習題(3)
1.現在假如你和你的小夥伴一起玩報數遊戲,從某乙個人開始報數1,然後下乙個報數2。一共100人,如果報數是3的倍數就報 哈哈哈,如果報數是5的倍數就報 呵呵呵。如果既是3的倍數,又是5的倍數就報 哈呵哈呵哈呵。需要遍歷1 100 結果應該類似 0,1,2,哈哈哈,4,呵呵呵,6 14,哈呵哈呵哈呵,...
練習題 基礎練習
第一題 需求 1 計算 5 個月的生活大概開銷 spending 比如 rent 房租 800.00 mealcost 吃飯 900.00 clothingcosts 買衣服 300.00 othercosts 其他費用 300.00 public class dome1 第二題 需求 2 計算 1...