Как создать объект?
Есть простой класс:
var myclass = {
property1: "20"
myfunc=function(){alert();}
}
Как можно создать объект этого класса? Я делаю так: var myobj = new myclass(); myobj.property1="30"; Но мне выдаётся ошибка: Ошибка: TypeError: myclass is not a constructor Как сделать правильно? |
var myclass = {
property1: function (x) {
this.property1 = x;
return this.property1;
},
myfunc: function () {
alert(this.property1);
}
};
var myobj = myclass;
myobj.property1 = 30;
myobj.myfunc();
var best = function () {
this.property1 = function (x) {
this.property1 = x;
return this.property1;
}
this.myfunc = function () {
alert(this.property1);
}
};
var myNew = new best;
myNew.property1 = 10;
myNew.myfunc();
в js нет классов. Объекты |
Здравствуйте!
Судя по вашему сообщению, вы ну совсем не знаете javascript. Освойте основы языка и вопрос отпадет сам, полностью или частично. А с чем не справитесь - поможем. На сайте javascript можно начать изучать с учебника, раздел Основы javascript. Возможно, вам также понадобится HTML - учебник есть, например, здесь: http://ru.html.net/tutorials/html/ Задавайте конкретные вопросы по ходу дела. |
Для вашего случая:
var myobj = Object.create(myclass); ИЛИ
var myobj = {__proto__: myclass};
(свойство __proto__ стандартизировано в ECMAScript6 и работает во всех современных браузерах) Или вариант с конструктором:
function myclass() {}
myclass.prototype.property1 = '20';
myclass.prototype.myfunc = function () { alert(); };
var myobj = new myclass();
PS: myclass - это анонимный объект у вас, а не класс. Рекомендую ознакомится http://learn.javascript.ru/prototype |
Цитата:
// Конструктор принято записывать с большой буквы
function ReallyBest(property) {
this.property1 = property;
}
// Методы принято выносить в прототип
ReallyBest.prototype.myFunc = function() {
alert(this.property1);
};
// При вызове конструктора принято ставить скобки, даже если нет аргументов
var instance = new ReallyBest(30);
instance.myFunc();
|
Цитата:
что нового в ECMAScript6
class Animal {
constructor(name) {
this.name = name;
}
sayName() {
console.log(this.name);
}
}
class Dog extends Animal {
constructor(name) {
super(name);
}
bark() {
console.log("Woof!");
}
}
|
Цитата:
Неужели слишком сложная цепочка? |
Всем спасибо, в том числе за полезные ссылки. Этот код то что нужно.
var myobj = Object.create(myclass); |
| Часовой пояс GMT +3, время: 10:12. |