Size: a a a

JavaScript Noobs — сообщество новичков

2020 August 02

IS

Ilyas Sarsenbaev in JavaScript Noobs — сообщество новичков
jk
Или ты хочешь добавить свойства в уже объявленный ранее класс?
именно при вызове parser.name я мог проверять в геттере что-то замудренное и отдвавать какое-то значение.
источник

ЛХ

Лапки Х in JavaScript Noobs — сообщество новичков
Ilyas Sarsenbaev
что совсем нельзя defineProperty на класс ставить?
нельзя
источник

j

jk in JavaScript Noobs — сообщество новичков
Ilyas Sarsenbaev
именно при вызове parser.name я мог проверять в геттере что-то замудренное и отдвавать какое-то значение.
Вроде того?

class MyClass {
 prop1() {}
}

Object.defineProperty(MyClass.prototype, 'prop2', { value: 'val' })

const instance = new MyClass()

console.log(instance.prop2)
источник

ЛХ

Лапки Х in JavaScript Noobs — сообщество новичков
но можно в прототип добавлять
источник

j

jk in JavaScript Noobs — сообщество новичков
Лапки Х
нельзя
Ну так у тебя будет вроде как статическое свойство

class MyClass {
 prop1() {}
}

Object.defineProperty(MyClass, 'prop2', { value: 'val' })

const instance = new MyClass()

console.log(instance.prop2)

console.log(MyClass.prop2)
источник

ЛХ

Лапки Х in JavaScript Noobs — сообщество новичков
jk
Ну так у тебя будет вроде как статическое свойство

class MyClass {
 prop1() {}
}

Object.defineProperty(MyClass, 'prop2', { value: 'val' })

const instance = new MyClass()

console.log(instance.prop2)

console.log(MyClass.prop2)
Я говорю о том, что defineProperty не поменяет класс, если давать ему объект, в который ты его запишешь (как в первом сообщении с кодом), только у самого объекта
источник

j

jk in JavaScript Noobs — сообщество новичков
Лапки Х
Я говорю о том, что defineProperty не поменяет класс, если давать ему объект, в который ты его запишешь (как в первом сообщении с кодом), только у самого объекта
Ну да. Ты же не меняешь прототип а конкретный объект.
источник

ЛХ

Лапки Х in JavaScript Noobs — сообщество новичков
jk
Ну да. Ты же не меняешь прототип а конкретный объект.
я про это и говорю, что для изменения класса ему надо менять прототип
источник

ЛХ

Лапки Х in JavaScript Noobs — сообщество новичков
но
const obj = class Name{}
Name.prototype = ...
выдаст can not read property prototype of undefined, вроде

или Name is not defined
источник

IS

Ilyas Sarsenbaev in JavaScript Noobs — сообщество новичков
jk
Вроде того?

class MyClass {
 prop1() {}
}

Object.defineProperty(MyClass.prototype, 'prop2', { value: 'val' })

const instance = new MyClass()

console.log(instance.prop2)
да, но перед выводом value нужно провести некие проверки.
источник

j

jk in JavaScript Noobs — сообщество новичков
Лапки Х
но
const obj = class Name{}
Name.prototype = ...
выдаст can not read property prototype of undefined, вроде

или Name is not defined
Ну судя по всему оно не попадает в область видимости по имени класса, а только по переменной.

const test = class MyClass {
 constructor() {
   console.log(MyClass)
   // Success
 }
}

new test()
// Success
new MyClass()
// Error


Так же как с функциями

const funcVar = function FuncName() {
 console.log(FuncName)
 // Success
}

funcVar()
// Success
FuncName()
// Error
источник

IS

Ilyas Sarsenbaev in JavaScript Noobs — сообщество новичков
Лапки Х
Я говорю о том, что defineProperty не поменяет класс, если давать ему объект, в который ты его запишешь (как в первом сообщении с кодом), только у самого объекта
как я понял меняется только конкретный объект а не класс
источник

ЛХ

Лапки Х in JavaScript Noobs — сообщество новичков
jk
Ну судя по всему оно не попадает в область видимости по имени класса, а только по переменной.

const test = class MyClass {
 constructor() {
   console.log(MyClass)
   // Success
 }
}

new test()
// Success
new MyClass()
// Error


Так же как с функциями

const funcVar = function FuncName() {
 console.log(FuncName)
 // Success
}

funcVar()
// Success
FuncName()
// Error
это я и имею ввиду, потому и спрашиваю, зачем ему такое
источник

ЛХ

Лапки Х in JavaScript Noobs — сообщество новичков
Ilyas Sarsenbaev
как я понял меняется только конкретный объект а не класс
источник

j

jk in JavaScript Noobs — сообщество новичков
Ilyas Sarsenbaev
да, но перед выводом value нужно провести некие проверки.
Если у тебя нет доступа к коду класса, то объяви свойство его прототипа через defineProperty указав геттер.
источник

IS

Ilyas Sarsenbaev in JavaScript Noobs — сообщество новичков
jk
Если у тебя нет доступа к коду класса, то объяви свойство его прототипа через defineProperty указав геттер.
Да, с прототипом все сработало.
Пойду про прототипы почитаю, не знаком пока с ним.
источник

d

dettrix in JavaScript Noobs — сообщество новичков
1
всем привет. есть возможность на хроме сделать расширение невидимым ? чтоб даже в списке дополнения/ расширения не высвечивалось ?
❗️хацкер дэтэктэд
источник

ЛХ

Лапки Х in JavaScript Noobs — сообщество новичков
1
всем привет. есть возможность на хроме сделать расширение невидимым ? чтоб даже в списке дополнения/ расширения не высвечивалось ?
нет
источник

ЛХ

Лапки Х in JavaScript Noobs — сообщество новичков
и тебе это не надо
источник

И

Иван in JavaScript Noobs — сообщество новичков
Ребят, подскажите.
Я в canvas рисую квадрат, потом меняю его координаты при нажатии на кнопку
Как сделать что бы предыдущий квадрат удалялся?
источник