| bonifacii | 
			09.01.2010 19:39 | 
		 
		 
		
		 
		
		
			Вопрос по поводу свойства "constructor"   
		
		
		
		Здравствуйте товарищи. Нужна ваша помощь. 
Имеется следующая ситуация: 
	1. Страница состоит из фреймов. 
	2. Требуется из одно фрейма вызвать функцию в другом фрейме. 
	3. Внутри функции происходит проверка на тип входящих параметров. А именно, один из параметров должен быть объектом со свойствами и все такое. 
	4. Проверяю его следующим образом: "param.constructor == Object". 
	5. Заведомо подходящий параметр (вот такой: "obj = {}") который должен пройти проверку, проверку не проходит.
		 
Вот. Прошу прокомментировать. Наглядный пример привожу ниже.
 index.html:
	Код: 
	
 <html> 
        <frameset rows="0,*" cols="*"> 
                <frame src="data.html" name="data"> 
                <frame src="test.html" name="content"> 
        </frameset> 
</html> 
 
test.html:
	Код: 
	
 <html> 
<head> 
  <title>проверка</title> 
  <script type="text/javascript"> 
          var obj_1 = {}, 
            obj_2 = new Object(); 
         
        alert(obj_1.constructor == Object);        //true 
        alert(obj_2.constructor == Object);        //true 
         
        test(obj_1, obj_2); 
         
        //Здесь все верно. Оба алерта выдают тру. 
        function test(obj_1, obj_2) { 
                alert(obj_1.constructor == Object);        //true 
                alert(obj_2.constructor == Object);        //true 
                 
                alert(typeof obj_1);                //object 
                 
                alert(obj_1.constructor);        //  function Object() { 
                                                //  [native code] 
                                                //  } 
        } 
         
        //Здесь оба алерта выдают фолс. 
        window.parent.data.test(obj_1, obj_2); 
  </script> 
</head> 
<body> 
</body> 
</html> 
 
data.html:
	Код: 
	
 <html> 
<head> 
  <script type="text/javascript"> 
        function test(obj_1, obj_2) { 
                alert(obj_1.constructor == Object);        //false 
                alert(obj_2.constructor == Object);        //false 
                 
                alert(typeof obj_1);                //object 
                 
                alert(obj_1.constructor);        //  function Object() { 
                                                //  [native code] 
                                                //  } 
        } 
  </script> 
</head> 
<body> 
</body> 
</html> 
  
	 |