Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Встраивание JavaScript


Автор: AlDev 4.12.2006, 11:13
собсно код:
core/Class.js
Код

<!--
var Class = function() {
}

Class.extends = function(class,superClass) {
    class.prototype = new superClass();
    class.prototype.super = superClass;
    class.prototype.constructor = class;
}

alert ('test');
-->


в html пишу:
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<!-- scripts -->
<script type="text/javascript" language="javascript" src="core/Class.js" ></script>
<script type="text/javascript">
<!--
function onLoad() {
    alert ('bla');
}
-->
</script>
<!-- end of scripts -->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Client sample</title>
</head>
<body onload="onLoad()">
</body>
</html>



Все вроде нормально, но вот JavaScript в core/Class.js не выполняется в Internet Explorer-е. 

Подскажите плиз, где туплю.

Добавлено @ 11:26 
Вопрос отпал
Код

<!--
var Class = function() {
}

Class['extends'] = function(newClass,superClass) {
    newClass.prototype = new superClass();
    newClass.prototype['super'] = superClass;
    newClass.prototype.constructor = newClass;
}
alert ('test');
-->

Автор: Zeroglif 4.12.2006, 12:02
На всякий случай поясню, что тут было. В данном случае, IE взбрыкнул по поводу идентификаторов, т.к. при точечной нотации мы имеем дело именно с ними:

MemberExpression . Identifier 
CallExpression . Identifier


А для идентификаторов действует правило касательно запрета зарезервированных слов:

Identifier but not ReservedWord

Зарезервированные слова в данном случае это ( с одной поправкой, что это Future Reserved Words, то есть некоторые браузеры в текущей своей  реализации EcmaScript могут на них закрыть глаза):

class
extends
super


AlDev легко вышел из положения с помощью скобок, ибо при скобочной нотации нам идентификаторы не нужны, руки развязаны в том числе и в отношении зарезервированных слов:

MemberExpression [ Expression ] 
CallExpression [ Expression ]

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)