Как создать объект?
Есть простой класс:
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, время: 00:50. |