var One = Object.create(Person).constructor("Alex", 32);
.constructor()
. а что он возвращает? ничего. а точнее undefined. когда функция явно ничего не возвращает, она возвращает undefined. поэтому строчка кода выше, эквивалента строчке:var One = undefined
constructor: function(name,age){
this.name=name;
this.age=age;
return undefined
}
Что означает конструкция return this?означет, что функция возвращает текущий контекст. контекстом в данном случае будет являтся объект, созданный с помощью
Object.create()
function getTimestamps(from, to, step) {
function f(timestamps, current) {
return current.isBefore(to)
? f([...timestamps, current.clone()], current.add(step, 'minutes'))
: [...timestamps, to.clone()];
}
return f([], from)
}
const timestamps = getTimestamps(
moment('1745', 'hmm'),
moment('2000', 'hmm'),
30
);
console.log(
timestamps
.map(t => t.format('HH:mm'))
.toString()
) // 17:45,18:15,18:45,19:15,19:45,20:00
<script src="//cdnjs.cloudflare.com/ajax/libs/validate.js/0.12.0/validate.min.js"></script>
onUploadProgress({loaded, total}) {
const uploadProgress = Math.round(loaded / total * 100)
store.commit('uploader/setProgress', uploadProgress)
}
export const uploader = {
namespaced: true,
state: {
progress: 0
},
mutations: {
setProgress(state, progress) {
state.progress = progress
}
}
}
computed: {
...mapState('uploader', [
'progress'
])
}
<template>
<div>{{progress}}%</div>
</template>
.documentBody.documentBodyOld + .documentBody.documentBodyOld {
display: none
}
document
.querySelectorAll('.documentBody.documentBodyOld + .documentBody.documentBodyOld')
.forEach(node => node.remove());
&&
вычисляет слева направо каждый из своих операндов. Результат вычисление операнда приводится к булевому типу и если он true, переходит к вычислению следующего операнда. Операция повторяется до тех пор, пока результат вычисления очередного операнда не будет false, если это так, то возвращается результат вычисления данного операнда и цепочка обрывается.1 && 2 && 3 && 4 && 5 // 5
1 && 2 && 0 && 4 && 5 // 0
confirm(1) && confirm(2) && confirm(3)
||
похожая картина. Отличие в том, что цепочка операндов будет выполняться до первого истинного операнда1 || 2 || 3 || 4 || 5 // 1
0 || false || !!0 || 5 || true || !!1 //5
confirm(1) || confirm(2) || confirm(3)
&&
и ||
не возвращают true или false. Они возвращают результат вычисления одного из своих операндов.