Вход

Просмотр полной версии : Вопрос по поводу свойства "constructor"


bonifacii
09.01.2010, 19:39
Здравствуйте товарищи. Нужна ваша помощь.

Имеется следующая ситуация:
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>

tenshi
09.01.2010, 20:22
typeof

bonifacii
09.01.2010, 20:47
Не понял к чему это и о чем.