1、雙向綁定:html
UI<-->數據app
數據->UI (數據改變UI跟着變)函數
UI->數據 (UI改變數據跟着變)雙向綁定
數據改變->UI改變原理:htm
監聽數據是否改變,若是改變動新UI數據。ip
UI改變->數據改變原理:get
<html>input
<body>string
<input type="text" name="name" value="" id="text1" ng_model="a">it
<script>
window.onload = function(){
var a='';
var oTxt = document.getElementById('text1');
oTxt.oninput = function(){ //UI值改變數據改變
a = oTxt.value;
}
}
</script>
</body>
</html>
2、依賴注入:
函數能夠本身決定須要什麼數據或者多小個數據,而不是外面傳什麼就用什麼。
2.一、調用者決定給多小個參數
<script>
function show(a,b,c){
console.log(arguments.length);
}
show(1); //調用者只給1個參數,調用者決定參數的給予。
</script>
2.二、依賴注入(依賴反轉):函數要求要多小參數,就給多小。 就像show(a,b,c)要求3個參數
<script>
function show(a,b,c){
console.log(arguments.length);
}
var scope = {a:12,b:15,c:99,qq:55,i:99}; //假設是函數須要的參數
//實現依賴反轉二個步驟
//一、知道show要什麼參數
var str = show.toString();
str=str.split('{')[0].match(/\(.*)\/)[0].replace(/\S+/g,'');
str=str.substring(1,str.length-1);
var arr=str.split(',');
//二、給它相應值
var args=[];
for(var i=0;i<arr.length;i++){
args[i]=scope[arr[i]];
}
console.log(args);
show.apply(null,args);
</script>