我正在测试一个函数,看看当它的参数是什么时会发生什么,null并决定用它做一个else语句.令我惊讶的是,它没有记录我通过的参数,它完全记录了其他内容.也许有人可以对此有所了解,这是代码:
function testing(o) {
if (!o) {
return "Sorry, looks like you need to pass an argument.."
} else {
return o;
}
}
console.log(testing(02034));
//logs 1052
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?
我确信这很简单,但我似乎无法让这个工作得恰到好处.这是我的代码:
var zero = 10;
function some(elem, num) {
return elem += num;
}
console.log(some(zero, 10));
console.log(some(zero, 10));
console.log(some(zero, 10));
Run Code Online (Sandbox Code Playgroud)
根据我的理解,我期待变量zero每次增加10 ..所以,它将是10,20和30.相反,我一直得到10.显然,这是不对的.
我的问题是,我zero每次如何将变量增加10并将该值保存回变量zero?
观看道格拉斯·克罗克福德关于高级JavaScript的讲座,他提出了寄生继承的想法,这本质上是构造函数调用其他构造函数来修改有问题的对象.这是他的代码:
function gizmo(id, secret) {
secret = secret || {};
secret.id = id;
return {
toString: function () {
return "gizmo " + secret.id;
}
};
}
function hoozit(id) {
var secret = {},
that = gizmo(id, secret);
that.test = function (testid) {
return testid === secret.id;
};
return that;
}
var myHoozit = hoozit(20);
console.log(myHoozit.test(20)); //returns true
Run Code Online (Sandbox Code Playgroud)
我理解代码,这里没有什么难以理解的.混乱发生在hoozit函数中.如果你没有设置,secret = {}你就不会得到一个true被退回的.
这是令人困惑的,因为在gizmo函数中,你会看到secret = secret || {}哪个应该为我们处理这个......但事实并非如此.
为什么不能正常工作的是短路(secret = secret …
我正在做一些我认为相对简单的事情,但是Angular对我来说并不正确.我很确定这可以做到,我想我在这里错过了一些东西.
基本上我已经在Angular中创建了一个表单服务,我可以在其中定义一个对象数组,以便即时制作表单.一个例子如下:
email: [
{
name: 'email',
type: text,
required: true
}
]
Run Code Online (Sandbox Code Playgroud)
这可能代表某人可以输入他们的电子邮件的表单.我想要做的就是运行一个ng-repeat并添加一些Angular脏检查,如下所示:
<form name="form">
<span ng-repeat="fields in formFields">
<input name="{{field.name}}
ng-model="user[field.name]" />
<div ng-show="form.{{field.name}}.$dirty">Input is dirty</div>
</span>
</form>
Run Code Online (Sandbox Code Playgroud)
但是由于某种原因这不起作用.我尝试了一些不同的组合来完成这项工作,但没有运气.我正在关注我在Angular文档中看到的示例:https://docs.angularjs.org/guide/forms
这是当前代码的小提琴:http://jsfiddle.net/HB7LU/4764/ ...正如你所看到的那样,双向绑定工作在ng-repeat但不是脏检查.脏检查在之前的示例中正在工作.
我在这做错了什么?
隐藏具有特定类名的跨度时,我被困在做什么。我不能使用,this因为它指的是输入。这是我的脚本:
//uncheck all checkboxes
$("input[type=checkbox]").prop("checked", false);
$("input[type=checkbox]").each( function (index) {
$(this).addClass("doc" + index);
})
$("input").change( function () {
var docName = $(this).parent().find("span");
var className = $(this).attr("class");
if(this.checked) {
$("span.noneAttached").fadeOut('slow', function () {
docName.clone().appendTo(".attachedDocuments").addClass(className).after("<br />").text();
});
}
else if (!this.checked && ($(".attachedDocuments > span").hasClass(className))) {
//hide the span with the class name
}
});
Run Code Online (Sandbox Code Playgroud)
该else if检查是否复选框未选中,如果父div包含与类名孩子。如果是这样,请将其隐藏。
我从这里去哪里?我确信这个答案是显而易见的,但是我只是没有看到它。
我肯定答案是盯着我的脸,但我似乎无法弄清楚这一点.
目标:我想要做的是制作一个杯子的动画液体.这不一定非常逼真.我以为我可以将杯子图像作为一层,然后在它后面有液体图像并缓慢地显示液体以给出它正在被填满的错觉.这将与预加载器(我已经构建)一起使用.
我尝试过的: 我的第一个想法是尝试使用CSS Mask,所以我稍微修改了一下.虽然它确实有很多选项,但您不能只定义图像,而且您定义的蒙版之外的所有内容都会显示背后的图像.相反,它只显示你在面具中切出的地方,并且面具外面的所有东西都是白色的.使用mask-position和mask-repeat: none无法尝试解决此问题.
我认为可以工作: 也许某种背景定位会变得动画?在研究这个问题的时候,我似乎并没有能够做到这一点.我知道这可以在动画容量中缓慢移动遮罩层,使其得到填充杯子的错觉.
我的问题: 我如何缓慢地揭示图像的某些部分,以便通过使用杯子作为顶层图像慢慢填充杯子而液体作为背后的图层,其间有一个掩模,使其变得生动.显示液体?
本质上,我想做的是查询父实体的子级集合。根据EF Core文档,我可以使用Include和ThenInclude方法来做到这一点(https://docs.microsoft.com/en-us/ef/core/querying/related-data)。因此,我在存储库中有以下代码来获取所需的数据:
public object GetMatchupByVideoId(int id)
{
var videoMatchup = _DBContext.Matchups
.Where(m => m.VideoID == id)
.Include(m => m.Players).ThenInclude(p => p.Character)
.Include(m => m.Players).ThenInclude(p => p.User);
return videoMatchup;
}
Run Code Online (Sandbox Code Playgroud)
这段代码实质上是寻找Matchups与id传递的匹配的实体。然后,它退出并包含Players集合,该集合是模型上的导航属性。返回的数据如下所示:
[
{
"id": 1,
"players": [
{
"id": 1,
"user": {
"id": 1,
"displayName": "Player 1"
},
"character": {
"id": 40,
"name": "Superman"
},
"outcome": 0
},
{
"id": 2,
"user": {
"id": 2,
"displayName": "Player 2"
}, …Run Code Online (Sandbox Code Playgroud) 我正在尝试与我的构造函数一起使方法链工作,但我不确定如何去做.这是我到目前为止的代码:
function Points(one, two, three) {
this.one = one;
this.two = two;
this.three = three;
}
Points.prototype = {
add: function() {
return this.result = this.one + this.two + this.three;
},
multiply: function() {
return this.result * 30;
}
}
var some = new Points(1, 1, 1);
console.log(some.add().multiply());
Run Code Online (Sandbox Code Playgroud)
我试图在add方法的返回值上调用multiply方法.我知道有一些显而易见的事我不做,但我不确定它是什么.
有什么想法吗?
在函数中写入最难的时间来隐藏等于或小于零的数字.这是我想写的函数:
function isItANumber() {
var increased = parseInt($("#increasedRevenueValue"));
if(isNaN(increased)) {
$("#increasedRevenueValue").hide();
}
}
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?我应该用OR吗?
编辑:这是我的代码http://jsfiddle.net/YVcj7/的小提琴
我对我的代码发生了什么感到有点困惑,这是我到目前为止所做的:
function Person(name) {
this.name = name;
}
Person.prototype.getName = this.name;
Person.prototype.displayName = function() {
return this.name;
}
var Sethen = new Person("Sethen");
console.log(Sethen.getName);
console.log(Sethen.displayName());
Run Code Online (Sandbox Code Playgroud)
我很好奇为什么getName不给我this.name值,只记录空白,而displayName方法给我正确的值. getName是我的原型对象的属性,所以我的思维过程是我可以像这样抓住它.
为什么不getName记录值Sethen?我如何像常规财产一样抓住这些信息?我必须使用方法吗?