angularjs的陣列傳參方式的簡單實現

2021-09-16 14:26:22 字數 2661 閱讀 9739

初學 angularjs時,對 陣列傳參方式感到很好奇([『a』, 『b』, function(a,b){}]),它到底怎麼實現的呢?後來由於工作很忙,對這個問題也就慢慢忘記了。

今天閒來無事,有想到了這個問題。最簡單的方法就是檢視他的源**。無奈本人e文不好,不說看他的設計邏輯,僅看英文注釋就夠我頭疼了。嘗試閉門造車,最終竟然把車造出來了。

既然自己造的車,就要帶上自己的名(取姓名拼音第乙個字母),就叫他mqyjs把,下面是演示的呼叫方法:

return $scope.name + ": " + $hello.name + $world.name;

}]);

核心部分如下:

//框架開設

var mqyjs = ,

servicesregister: function(name, value) ,

//應用建立

if (!_args)

}_opts.scope = _opts.scope || ;

if (!(_args instanceof array))

if (typeof _args[_args.length - 1] != 'function')

_args.map((arg, index) => else

_args[index] = this.serviceslist[arg];}}

});run: function(callback) }}

}) - 1];

}};//框架結束

通過 servicesregister,可以註冊 服務,比如 angularjs 的 $http;

//外掛程式開始

mqyjs.servicesregister('$hello', );

mqyjs.servicesregister('$world', );

mqyjs.servicesregister('$china', );

//外掛程式結束

最終,對所有註冊的應用,自動執行

/**

* 初始化完成後系統自動執行

* 比如網頁中 放到 window.onload

*/});

嘗試跑一下**,能自動識別引數型別,完美執行。

不傳入 $scope 時,程式會自動建立乙個 $scope。

//演示** 開始

return $scope.name + ": " + $hello.name + $china.name;

}]);

return $scope.name + ": " + $hello.name + $world.name;

}]);

return $scope.name + ": " + $hello.name + $world.name;

}]);

return $scope.name;

});

var opts =

}; return $scope.name;

});

console.log('手動呼叫 -> result -> ' + result);

});//演示** 結束

為了方便測試,再把**重新寫一遍,直接複製下面的**到 瀏覽器控制台即可測試

//框架開設

var mqyjs = ,

servicesregister: function(name, value) ,

//應用建立

if (!_args)

}_opts.scope = _opts.scope || ;

if (!(_args instanceof array))

if (typeof _args[_args.length - 1] != 'function')

_args.map((arg, index) => else

_args[index] = this.serviceslist[arg];}}

});run: function(callback) }}

}) - 1];

}};//框架結束

//外掛程式開始

mqyjs.servicesregister('$hello', );

mqyjs.servicesregister('$world', );

mqyjs.servicesregister('$china', );

return $scope.name + ": " + $hello.name + $china.name;

}]);

return $scope.name + ": " + $hello.name + $world.name;

}]);

return $scope.name + ": " + $hello.name + $world.name;

}]);

return $scope.name;

});

var opts =

}; return $scope.name;

});

console.log('手動呼叫 -> result -> ' + result);

});

//外掛程式結束

});

指標陣列陣列傳參 指標引用傳參

指標和陣列作為引數傳入函式時,傳入的是位址,即指向變數的位址和陣列的首位址,可以在函式中改變指標或陣列的值,但本質上它們還是值的傳遞 區別於變數的值傳遞的是 變數值傳遞不會改變實參原來的值。我們無法對指標和陣列的位址進行操作 如 位址賦值,分配記憶體等 要進行位址操作需要使用指標引用或指標的指標。示...

AngularJs 非同步請求的幾種傳參形式

1 傳送非同步請求 其中第乙個 中可以傳參,第二個 中可以寫配置資訊 包括querystring 形式傳參,寫在params屬性中 設定請求型別 headers屬性 如果引數寫在第二個 的params 中 則是以querystring 形式傳送,後端 requst 引數名 接收,伺服器有長度限制,當...

傳陣列 Axios陣列傳參問題

在開發過程中遇到乙個前端通過axios向後端api請求,引數傳遞格式不正確導致的請求失敗的問題,在此記錄一下。後端是乙個查詢介面,查詢引數中有幾個是陣列的形式 傳送請求時應該以params是通過url方式傳遞 預期格式pageno 1 pagesize 15 sn 123 sn 456 mo num...