我已经阅读了很多关于Javascript中的闭包的内容.我在mozilla.org上看到,封闭应该被定义为
(function(){...})();
但在http://www.adequatelygood.com/JavaScript-Module-Pattern-In-Depth.html上,它说封闭功能是
(function(){...}());
有什么区别或后者是错的?last()的目的是什么?你会把一些参数放进去吗?我正在寻找一个很好的参考.
编辑:此外,Mozilla.org上有一个例子
var makeCounter = function() {
var privateCounter = 0;
function changeBy(val) {
privateCounter += val;
}
return {
increment: function() {
changeBy(1);
},
decrement: function() {
changeBy(-1);
},
value: function() {
return privateCounter;
}
}
};
Run Code Online (Sandbox Code Playgroud)
为什么这个'功能'需要分号?如果需要在声明后立即调用,则应在结束分号之前放置a().但事实并非如此.
我正在使用一个表格在angularJS中添加信用卡,使用角度材料(https://material.angularjs.org/latest/#/).
对于我所有的其他形式,我使用ng-messages(https://docs.angularjs.org/api/ngMessages/directive/ngMessages)来显示验证错误,并且它工作正常.
当我在md对话框中嵌入表单时,我的ng-messages没有显示,输入变为无效,但没有显示错误.我遇到了基本验证指令和自定义验证指令的问题.
我的对话框模板:
<md-dialog>
<md-dialog-content style="max-width:800px;max-height:810px; ">
<h2 i18n="add_card_button"></h2>
<form name="form">
<md-input-container>
<label i18n="card_number"></label>
<input name="card_number"
type="text"
ng-model="ctrl.newCard.cc_number"
class="md-input"
required
card-number>
<div ng-messages="form.card_number.$error">
<div ng-message="cardNumber">test message</div>
<div ng-message="required">test message 2</div>
</div>
</md-input-container>
...
</form>
</md-dialog-content>
<div class="md-actions" layout="row">
<md-button ng-click="">
<i18n>ok_button</i18n>
</md-button>
<md-button ng-click="cancel()" style="margin-right:20px;">
<i18n>cancel_button</i18n>
</md-button>
</div>
Run Code Online (Sandbox Code Playgroud)
我的对话框定义:
$mdDialog.show({
controller : dialogController,
controllerAs : "ctrl",
bindToController : true,
templateUrl : "creditCards/assets/templates/add_credit_card_dialog.html",
parent : angular.element(document.body),
targetEvent : event,
clickOutsiteToClose : true,
locals : {
cardTypes …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Google Oauth2 api的php客户端来验证id_token。id_token由一个JavaScript应用程序提供,用户在该应用程序上登录自己的Google帐户,我将该令牌提供给我的php api服务器,以便对其进行验证并从我的bdd检索正确的信息。
使用javascript登录成功,访问和id_token似乎正确,但是当我尝试使用Google_Client-> verifyIdToken()进行验证时
$client = new Google_Client();
$ticket = $client->verifyIdToken(myToken);
Run Code Online (Sandbox Code Playgroud)
,它将返回无效的令牌签名异常(尝试使用Google证书验证令牌时失败)。
我的第一个假设是认为令牌无效,因此为了使令牌无效,我将其提交给了Google验证网址 https://www.googleapis.com/oauth2/v1/tokeninfo?id_token=token
它返回用户信息,所以我的令牌似乎有效:
{
issuer: "accounts.google.com",
issued_to: "id",
audience: "id",
user_id: "id",
expires_in: 2149,
issued_at: 1397636222,
email: "mail",
verified_email: true
}
Run Code Online (Sandbox Code Playgroud)
尝试了所有我能想到的,但无法解决的问题。有人能帮我吗 ?
编辑:当我在我的javascript应用程序上进行身份验证时,我仅将其传递给我获得的id_token
access_token: "ya ... Es"
authuser: "1"
client_id: "81 ... .apps.googleusercontent.com"
code: "4/9... gI"
cookie_policy: "single_host_origin"
expires_at: "1397723048"
expires_in: "3600"
g-oauth-window: Window
g_user_cookie_policy: "single_host_origin"
hd: "dmic.fr"
id_token: "ey... d8E" <====================================
issued_at: "1397719448"
num_sessions: "2"
prompt: "none"
response_type: "code token id_token gsession"
scope: …
Run Code Online (Sandbox Code Playgroud) 我正在将byte
(8位)类型转换为short
(16位)类型,在我看来,Java正在转换我原始var的值而不是转换位.
我通过将8位掩码应用于生成的var来解决它short t = data & 0xFF
.
Java是否会对var或其位的值进行投射?
在一些代码中,我看到了一个带有--i作为第三个参数的for循环
for(int i=array.length; i<0; --i)
Run Code Online (Sandbox Code Playgroud)
也许有人可以解释我与我的区别 - ?
我想这就像我减少的那一刻?