2009-09-08 3 views
4

я наткнулся на фрагмент кода в JSКакая структура данных? - Javascript

globe = 
{ 
    country : 'USA', 
    continent : 'America' 
} 

Используя переменную, объявленную выше по:

alert(globe.country); 

Вопросы:

  1. Является ли это класс JS с 2-х участников?
  2. Почему ключевое слово var не используется при объявлении глобуса?
  3. Если это класс, могу ли я иметь функции-члены?

Благодаря

ответ

11
  1. Это объект JS с двумя свойствами.

  2. Не используя var места переменной в глобальной области

  3. Хотя не класс, он все еще может иметь функции как свойства

Функции могут быть пристегивается двумя различными способами:

globe.myFunc = function() { /* do something */ }; 

или

globe = { 
    ... 
    myFunc: function() { /* do something */ } 
} 
+0

Мой фон находится на C#. В C# объект является экземпляром класса. Похоже, что в JS класс называется объектом? – Nick

+0

У js нет «класса». он имеет только объекты. функции являются первоклассными объектами, а новые «экземпляры» могут быть созданы с использованием ключевого слова 'new'. – geowa4

+0

в ECMAScript нет классов; вы можете имитировать функциональность класса, определяя функцию-конструктор и используя новое ключевое слово для создания объектов. Я предлагаю ознакомиться с прототипным наследованием. –

3

Это объект JavaScript. Написано в объектной литературе.

1

JavaScript не является объектно-ориентированным языком, поэтому нет классов в том же смысле, что и на языке Java или C#. JavaScript - это prototype based language. Итак, это объект с двумя членами. Вы можете добавить дополнительных членов, как вы, к любому другому объекту, и они могут быть функциями.

Смежные вопросы