Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.08.2011, 10:58
Новичок на форуме
Отправить личное сообщение для thethirdchild Посмотреть профиль Найти все сообщения от thethirdchild
 
Регистрация: 23.08.2011
Сообщений: 8

Помощь по анонимным функциям
есть код
function  Shape () {
	this.constructor.name = Shape;
}
Shape.prototype = {
 getPerimeter: function () {
			   if ( this.constructor == Shape ) throw Error( "Forbidden" );
			   var p = 0;
			   for ( var i = 0; i < this.sides.length; i++) {
			    p += this.sides[i];
			   }
			   return p;
			  },
				
 getSquare: function () { 
   	         if ( this.constructor == Shape ) throw Error( "Forbidden" ); 
		    },

 getType: function () { 
		   if ( this.constructor == Shape ) throw Error( "Forbidden" );
		   return name;
		  }	
}

Shape.prototype.constructor = Shape;	//иначе Object() !!!!
			
var Triangle;			
(function () {
 Triangle = function ( a, b, c ) {

  this.sides = [ a, b, c ];
  
 }

 Triangle.prototype = new Shape();
 Triangle.prototype.constructor = Triangle;
 Triangle.prototype.getSquare = function () {
							     var p = this.getPerimeter()/2;
								 var S = Math.sqrt( p * ( p - this.sides[0] ) * ( p - this.sides[1] ) * ( p - this.sides[2] ) );
								 return Math.floor( S );
							    }								
 })();
 var t = new  Triangle ( 10, 15, 20 );

как мне получить тип обекта t и вывести его куданить ( скажем в алерт тот, не суть )
Ответить с цитированием
  #2 (permalink)  
Старый 23.08.2011, 11:43
Аватар для SkyLight
Злюка-бобер
Отправить личное сообщение для SkyLight Посмотреть профиль Найти все сообщения от SkyLight
 
Регистрация: 21.03.2010
Сообщений: 438

Что значит вывести? Вы хотите отрисовать треугольник на странице или как?
__________________
In WEB We Trust
У всех есть своя темная сторона...
Ответить с цитированием
  #3 (permalink)  
Старый 23.08.2011, 12:08
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

t.constructor
Ответить с цитированием
  #4 (permalink)  
Старый 24.08.2011, 01:13
Новичок на форуме
Отправить личное сообщение для thethirdchild Посмотреть профиль Найти все сообщения от thethirdchild
 
Регистрация: 23.08.2011
Сообщений: 8

мммм нуна метод getType переписать так, чтоб он возвращал тип объекта, к примеру
t.getType(); должно вернуть Triangle

Последний раз редактировалось thethirdchild, 24.08.2011 в 01:19.
Ответить с цитированием
  #5 (permalink)  
Старый 24.08.2011, 01:15
Новичок на форуме
Отправить личное сообщение для thethirdchild Посмотреть профиль Найти все сообщения от thethirdchild
 
Регистрация: 23.08.2011
Сообщений: 8

Сообщение от B@rmaley.e><e Посмотреть сообщение
t.constructor
выводит всю функцию конструктора, не то что надо, да и она безымянная...
Ответить с цитированием
  #6 (permalink)  
Старый 24.08.2011, 01:35
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

getType: function () {  
  if ( this.constructor == Shape ) throw Error( "Forbidden" ); 
  return this.constructor.name; 
}
Только для ie придется "в ручную" дописывать
Ответить с цитированием
  #7 (permalink)  
Старый 24.08.2011, 09:10
Новичок на форуме
Отправить личное сообщение для thethirdchild Посмотреть профиль Найти все сообщения от thethirdchild
 
Регистрация: 23.08.2011
Сообщений: 8

в ручную это как, да и ваш код не работает, вы проверяли его?
Ответить с цитированием
  #8 (permalink)  
Старый 24.08.2011, 11:18
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

чем вам конструктор, еще раз, не понравился?
function Triangle(){ 

       this.getType = function(){ return this.constructor.name };
       this.getType2 = function(){ return this.constructor };

}

var t = new  Triangle ( 10, 15, 20 );

alert( t.getType() );

alert( t.getType2() === Triangle );
Ответить с цитированием
  #9 (permalink)  
Старый 24.08.2011, 23:22
Новичок на форуме
Отправить личное сообщение для thethirdchild Посмотреть профиль Найти все сообщения от thethirdchild
 
Регистрация: 23.08.2011
Сообщений: 8

фух, еще раз говорю, функция конструктора АНОНИМНА, как мне получить имя констурктора именно при моей реализации конструктора треугольника!
Ответить с цитированием
  #10 (permalink)  
Старый 24.08.2011, 23:35
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от thethirdchild
функция конструктора АНОНИМНА
Сообщение от thethirdchild
как мне получить имя констурктора
var constructorName = "";
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Бесплатная помощь новичкам iCanary Общие вопросы Javascript 11 30.11.2015 20:35
Увеличить размер div'a, нужна помощь. neonick Events/DOM/Window 2 04.03.2011 22:24
нужна помощь тех кто разбирается. igoryk jQuery 2 20.10.2010 19:42
нужна помощь dominosoko Серверные языки и технологии 4 14.03.2010 02:17
Нужна помощь в изменении "вертикального меню" slane Элементы интерфейса 0 07.01.2010 14:32