Правильный способ с классами заключается в том, чтобы не псевдоним this
:
class Apple2 {
constructor(type) {
this.type = type
this.color = 'red'
}
getInfo() {
return `${this.color} ${this.type} apple`
}
}
console.log(new Apple2('Jazz').getInfo())
причина в том, что это на самом деле (приблизительно) эквивалентно следующему коду:
function Apple(type) {
this.type = type
this.color = 'red'
}
Apple.prototype.getInfo = function() {
return this.color + ' ' + this.type + ' apple'
}
console.log(new Apple('Granny').getInfo())
, поэтому используется this
работает. На самом деле, даже с вашим исходным кодом, псевдоним не был необходим:
function Apple(type) {
this.type = type
this.color = 'red'
this.getInfo = function() {
return this.color + ' ' + this.type + ' apple'
}
}
var apple = new Apple('Granny')
// does not make a difference
console.log(apple.getInfo())
var getInfo = apple.getInfo
// here is where it makes a difference
console.log(getInfo())
// how to fix
console.log(getInfo.call(apple))
Для получения дополнительной информации об этом поведении, см. Как работает «это»? работа с ключевыми словами?
вздохните решение, раздражающе простое... Почему я, возможно, не просто попробовал это во-первых? О, хорошо..., возможно, потому что я не понял, что у меня был доступ к TimeSpan
класс..., возможно, потому что я думал сам слепой... Но так или иначе, здесь это:
=TimeSpan.FromTicks(Sum(Fields!TheTime.Value))
D'oh!
@Svish - Я удалил свое предыдущее сообщение, потому что у меня была пригодная неуверенность по поводу моего ответа, но я соглашаюсь с @pfunk.
Я наконец вернул SSRS и имел игру вокруг, и, конечно, похоже, что Ваше большое количество является количеством галочек, таким образом, похоже, что немного форматирования результата будет работать на Вас.
Интересно достаточно моего предыдущего замысловатого ответа было обходным решением для подведения итогов значений DateTime (использующий Тип данных datetime SQL Server в моем запросе), который Вы не можете сделать в SSRS (и SQL), потому что Вы наклоняетесь, суммируют ДАТУ И ВРЕМЯ. Я буду включать его здесь снова для дальнейшего использования, но я думаю, был на чем-то вроде касательной ранее :)
Ниже кода преобразовывает поле DateTime в двойное, суммирует результат и затем преобразовывает его назад в DateTime и форматирует его для hh:mm:ss
=Date.FromOADate(Sum(Fields!TheTime.Value.ToOADate())).ToString("hh:mm:ss")
То, что, вероятно, происходит, является этим, когда Вы отображаете Поля! TheTime. Значение, SSRS достаточно умен для знания для отображения этого как поля типа DateTime
когда Вы добавляете сумму там, она думает, что это - числовое поле типа и отображает его как таковой (т.е., она суммирует количество "галочек" в каждом поле промежутка),
попытка, конкретно форматирующая суммированное значение как дата и время в свойствах полей и это, вероятно, покажет правильно