Насколько я понимаю раньше шеллы использовались в качестве примитивных высокоуровневых языков. Сейчас у нас есть Perl, Python, nodejs, php...
assoc .qnahabr=myexefile
ftype myexefile="%1" %*
c:\>assoc .exe
.exe=exefile
c:\>ftype exefile
exefile="%1" %*
c:\>assoc .pif
.pif=piffile
c:\>ftype piffile
piffile="%1" %*
c:\>assoc .scr
.scr=scrfile
c:\>ftype scrfile
scrfile="%1" /S
var example = {
get step_1() {
return '12345'
},
get step_2() {
var key = this.step_1;
console.log(key + ' from "step_1"')
}
};
example.step_2 // 12345 from "step_1"
example
как this
с помощью bind()
// ...
step_2: {
get: (function () {
var key = this.step_1.get();
console.log(key + ' from "step_1"')
}).bind(example), // теперь тут this === example
}
example.step_2.get() // 12345 from "step_1"
// (исходный код вопроса)
// magic!
Object.keys(example).forEach((key) => {
if ("get" in example[key])
example[key].get = example[key].get.bind(example);
});
example.step_2.get(); // 12345 from "step_1"
<percentage>
The percentage is calculated with respect to the width of the generated box's containing block. Note that this is true for 'margin-top' and 'margin-bottom' as well. If the containing block's width depends on this element, then the resulting layout is undefined in CSS 2.1.
Percentages: refer to logical width of containing block
Смысл двух разных вариантов для операторов "and" и "or" в том, что они работают с различными приоритетами (смотрите таблицу Приоритет выполнения операторов).
&&
- 15 строка, =
- 19 строка, and
- 23 строка.$bool = true and false;
=> ($bool = true) and false;
$bool = true && false;
=> $bool = (true && false);
myFunc('arg')
element.addEventListener( "click" , myFunc.bind(null, 'arg') );
element.addEventListener('click', myFunc)
а не запускать ее выполнение. Отправляя myFunc('arg')
вы сразу же запускаете выполнение функции. Чтобы отправить параметры функции в обработчик нужно привязать контекст через .bind
, как уже вам написали в примере выше, либо использовать метод .handleEvent
из интерфейса EventListener
:function myFunc(event) {
console.log(this.arg);
}
.....
element.addEventListener('click', {
handleEvent: myFunc,
arg: 'arg_value'
});
<form class="haha" id="foo1"> <!-- добавлен id формы -->
<input type="email" id="mail" name="user_email" />
</form>
<input type="text" id="name" name="user_name" form="foo1" /> <!-- внимание на атрибут form -->