javascript - 方法要用到一個(gè)外部的數(shù)據(jù) 那么是優(yōu)先選擇當(dāng)成參數(shù)傳過(guò)去 還是把數(shù)據(jù)存成相對(duì)當(dāng)前作用域來(lái)說(shuō)全局的變量~
問(wèn)題描述
var test = { init: function () {var data = $rootScope.test;if(data) { …… this.method(data);} },method: function (data) {console.log(data); }};
還是
var test = { data: $rootScope.test,init: function () {if(this.data) { …… this.method();} },method: function () {console.log(this.data); }};
哪種方式是最佳實(shí)踐
如果第一種方式要傳遞的層級(jí)過(guò)多怎么辦 比如開始是 init 調(diào) method 傳過(guò)去 之后有 method[n] 種 執(zhí)行順序是 init -> method -> method2 -> method3 這樣的 要一級(jí)一級(jí)傳嗎……
還有就是兩種方法那種性能高些呢 第二種每次取值都相當(dāng)于取對(duì)象的屬性 表象上直接傳參性能會(huì)跟憂些?~
問(wèn)題解答
回答1:傳遞,全局變量少用
回答2:你的例子里不算全局變量!
掛在對(duì)象的屬性上,不會(huì)影響到方法內(nèi)部變量的使用!也不會(huì)污染作用域!
回答3:你這里實(shí)現(xiàn)的不是全局變量,只是掛在到了對(duì)象的屬性上,還有這里何必要申明一個(gè)變量呢,并沒(méi)有看到你實(shí)際操作這個(gè)data,如果只是想引用一下值得話,那么直接用$rootScope.test不就好了?
相關(guān)文章:
1. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問(wèn)題2. win10系統(tǒng) php安裝swoole擴(kuò)展3. extra沒(méi)有加載出來(lái)4. mysql - php 如何網(wǎng)址中出現(xiàn)該頁(yè)標(biāo)題?5. Span標(biāo)簽6. 關(guān)于Mysql數(shù)據(jù)表行轉(zhuǎn)列7. django進(jìn)行數(shù)據(jù)庫(kù)的查詢8. PHP求助,求幫忙謝謝各位9. javascript - 釘釘?shù)膃xcel, word文件預(yù)覽是直接用的微軟的office web app,不犯法嗎?10. 求救一下,用新版的phpstudy,數(shù)據(jù)庫(kù)過(guò)段時(shí)間會(huì)消失是什么情況?
