今天在看《鋒利的jquery>>時看到了proxy()的使用,感覺很模糊,就到處找資料.
jquery的原始碼也沒看明白.
不過總算明白了proxy的用法了;
1
<
input
type
="button"
value
="測試"
id="guobtn"
name
="我是按鈕的name"
/>
1
var obj =6}
7 $("#guobtn").click(obj.sayname); //
我是按鈕的name8//
如果我想訪問obj的name怎麼辦呢?
9 $("#guobtn").click($.proxy(obj.sayname,obj));//
"我是obj的name"
10 $("#guobtn").click($.proxy(obj, "sayname")); //
"我是obj的name"
從上面proxy(a,b)的用法可以看出他的引數有兩種寫法.
第一種:a是乙個function函式,b是這個函式的物件所有者.
第二種:a是乙個物件,b是乙個字串,是a的屬性名.
還有這個例項就是《鋒利的jquery>>上的乙個例子了.
1
<
div
id="panel"
style
="display:none;"
>
2<
button
>close
button
>
3div
>
1 $("#panel").fadein(function
() );
5 });
button雖然消失了,但是panel卻沒有消失.可以使用proxy來解決這個問題.
1 $("#panel").fadein(function
() , obj));
6 });
這樣單擊按鈕之後,panel才會消失.
個人感覺proxy最主要就是用來修改函式執行時的上下文物件的.
vue中 關於proxy的理解
我們本地除錯一般都是npm run serve,然後開啟本機ip 8080 localhost 8080 對吧,這時候我們要調介面除錯,後端的介面的位址可能在測試環境,也可能是自己電腦的 ip,總之不是你的lcoalhost 8080,那麼你調介面就會產生跨域,那麼怎麼辦呢?就需要proxy出場了 ...
關於proxy的乙個奇怪現象
其實也不算是proxy的問題,我在上篇文章中提到的getonenet 程式,在新建的測試程式中能正常返回json資料,但是一到了我搭建好的平台上就不行了。雖然請求成功,但是卻給我個錯誤返回值。objectapi明明是寫了,一模一樣都是複製過來的,請求qq 和後台資料都沒問題,一幹正事就不行。也不知道...
proxy的理解及proxy為什麼可以監聽陣列?
1,proxy的基本理解 proxy是es6中的語法,最為 的功能,當外接要訪問物件的時候,proxy可以做一層攔截,並且可以對這個proxy 進行操作,進而實現對物件的操作。如 var proxy newproxy obj,handler 這裡定義的proxy作為obj的 handler也是個物件...