- 增加程序的靈活性,避免將程序?qū)懰赖酱a里
/**
* 獲取window的屬性和方法
*/
for(var i in window)
{
console.log(i+':'+window[i])
}
/////////////////////////////////////////////////////////////////////
/**
* 根據(jù)鍵盤值,執(zhí)行相應(yīng)方法
*/
window.addEventListener('keydown',function(e)
{
keyEvent[e.keyCode]()
})
/**
* 鍵盤事件
*/
var keyEvent = {
65:function()
{
alert('A')
},
83:function()
{
alert('S')
},
68:function()
{
alert('D')
}
}
/**
* 根據(jù)數(shù)據(jù),更新元素樣式
*/
function style(data)
{
for(var i in data)
{
document.body.style[i] = data[i];
}
}
style({'background-color':'red'});
/////////////////////////////////////////////////////////////////////
/**
* switch耦合
*/
switch(num)
{
case 0 :
console.log('跑步')
break;
case 1 :
console.log('跳躍')
break;
case 2 :
console.log('睡覺')
break;
}
/**
* 反射解耦
*/
function people()
{
function run()
{
console.log('跑步')
}
function jump()
{
console.log('跳躍')
}
function sleep()
{
console.log('睡覺')
}
return{
0:run,
1:jump,
2:sleep
}
}
new people()[value]

反射
- 框架與框架要解決的核心問題
我們做房子賣給用戶住,用于用戶自己安裝門窗和空調(diào),我做的房子就是框 架,用戶需要使用我的框架,把門窗插入進(jìn)我提供的框架中??蚣芘c工具類有區(qū)別,工具類被用戶的類調(diào)用,而框架則是調(diào)用用戶提供的類。
- 框架要解決的核心問題
我在寫框架(房子)時(shí),你這個(gè)用戶可能還在上小學(xué),還不會(huì)寫程序呢?我寫的框架程序怎樣能調(diào)用到你以后寫的類呢?
/**
* 代碼示例
*/
Class.forName(classNameStr).getMethod(methodName).invoke(obj,Class)
因?yàn)樵趯懗绦驎r(shí)無法知道要被調(diào)用的類名,所以,在程序中無法直接new某個(gè)類的實(shí)例對(duì)象了,而要用反射方式來做