История изменений
Исправление uin, (текущая версия) :
Писать на нём пробовал? Заниматься работой компилятора дело неблагодарное.
Причем здесь работа компилятора?
var user_1 = new User('gpl-фанбой', 50)
var user_2 = new User('либераст-кун', 50)
function User(nik, i) {
this.name = nik;
this.score = i;
this.say_words = "";
}
User.prototype.say = function(w) {
//все объекты типа User наследуют это свойство
this.say_words = this.say_words +" "+ w;
}
function moderateUsers(users, callback) {
User.prototype.lose = function(n) {
//все объекты типа User внутри этой функции наследуют это свойство
this.score = this.score - n;
}
for (var i = 0; i < users.length; i++) {
if (!users[i])
continue;
callback(users[i]);
}
}
user_1.say('свободка Столлман анальное рабство')
user_2.say('попил россиюшка честные выборы трактор')
moderateUsers([
user_1, user_2
], function(user) {
String.prototype.offense = function() {
//все строки внутри этой функции наследуют это свойство
var m7 = this.match(/анальное\sрабство/ig)
var m20 = this.match(/попил|честные\sвыборы/ig)
return (m7 ? m7.length * 7 : 0) + (m20 ? m20.length * 20 : 0);
}
user.lose(user.say_words.offense())
console.log(user.name +": "+ user.score +" скора осталось.")
})
от того, что ты написал так, как написал выше, жуёс не стал строготипизированным.
К сильной типизации этот код (как и весь JS) отношения не имеет никакого
Да - не имеет, да - не становится, контролируйте/проверяйте типы в ручную, пишите так что бы они не переопределялись, если прям кровь из носу строгая типизация нужна.
Все что я хотел сказать.
Исходная версия uin, :
Писать на нём пробовал? Заниматься работой компилятора дело неблагодарное.
Причем здесь работа компилятора?
var user_1 = new User('gpl-фанбой', 50)
var user_2 = new User('либераст-кун', 50)
function User(nik, i) {
this.name = nik;
this.score = i;
this.say_words = "";
}
User.prototype.say = function(w) {
//все объекты типа User наследуют это свойство
this.say_words = this.say_words +" "+ w;
}
function moderateUsers(users, callback) {
User.prototype.lose = function(n) {
//все объекты типа User внутри этой функции наследуют это свойство
this.score = this.score - n;
}
for (var i = 0; i < users.length; i++) {
if (!users[i])
continue;
callback(users[i]);
}
}
user_1.say('свободка Столлман анальное рабство')
user_2.say('попил россиюшка честные выборы трактор')
moderateUsers([
user_1, user_2
], function(user) {
String.prototype.offense = function() {
//все строки внутри этой функции наследуют это свойство
var m7 = this.match(/анальное\sрабство/ig)
var m20 = this.match(/попил|честные\sвыборы/ig)
return (m7 ? m7.length * 7 : 0) + (m20 ? m20.length * 20 : 0);
}
user.lose(user.say_words.offense())
console.log(user.name +": "+ user.score +" скора осталось.")
})
от того, что ты написал так, как написал выше, жуёс не стал строготипизированным.
К сильной типизации этот код (как и весь JS) отношения не имеет никакого
Да - не имеет, да - не становится, контролируйте/проверяйте типы в ручную если так нужно.