function myOb() {
this.serverTime = '11:32:20';
Это не работает.this
имеет значение только в функции, если она вызывается как метод объекта или с оператором new
.
Если вы просто делаете myOb()
вместо new myOb()
, тогда this
будет глобальным (window
) объектом, и присвоение this.serverTime
эффективно создает глобальные переменные, чего вы пытались избежать в первую очередь.(Также без значения, возвращаемого функцией, myCl
будет undefined
.)
Поскольку вы, кажется, действительно не делаете ничего, что требует нескольких экземпляров или прототипирования, забудьте о функции и просто используйтеобъектный литерал:
var pageValues= {
serverTime: '11:32:20',
serverDate: '2010-09-24'
};
Вы можете легко сгенерировать подобный код, используя кодировщик JSON на стороне сервера.Например, если вы используете серверный язык PHP:
<?php
$pageValues= array('serverTime'=>'11:32:20', 'serverDate'=>'2010-09-24');
?>
<script type="text/javascript">
var pageValues= <?php echo json_encode($pageValues); ?>;
</script>
как добавить методы к инициируемому классу или объекту?
Использовать встроенную функциювыражение:
pageValues.someMethod= function() {
...do something...
};
Однако я не уверен, что это действительно вам что-нибудь даст.JavaScript - это смешанный язык сценариев, вам не нужно думать, как Java, и пытаться объединить все в объекты и классы.(Тем более, что вы на самом деле не получаете классы, и вам приходится бросать свои собственные, используя прототипы.)