Цитата:
|
Все ущли завтро договорим=)
|
Цитата:
function A(x) {
this.x = x;
this.getX = function () {
return this.x;
};
}
var a = new A(10);
var b = new A(20);
// ну тут понятно
alert(a.hasOwnProperty('x')); // true
alert(b.hasOwnProperty('x')); // true
// а здесь почему, если ты говоришь, что
// метод getX - один на оба объекта
alert(a.hasOwnProperty('getX')); // true
alert(b.hasOwnProperty('getX')); // true
Цитата:
Цитата:
Цитата:
|
Цитата:
|
Цитата:
// так будет ошибка
var a = function () {} var b = 10;
// а так - правильно
var a = function () {}; var b = 10;
Вообще, точка с запятой нужна обязательно после некоторых инструкций, просто парсер сам вставляет точку с запятой в случае перевода строки. Если же перевода не будет (как в примере выше) - будет ошибка, поэтому точка с запятой там нужна. |
Вы в свой код пробовали добавить?
alert(a.getX) |
Цитата:
А если добавить: alert(a.getX === b.getX); // false то явно видно, что это не один и тот же метод. Что-то я запутался. Может, всё-таки, тут надо прототип как-то задействовать, чтобы оба объекта имели один и тот же метод? Ведь, если в прототипе свойство расшаривается одно на всех, то, может, и метод тоже будет? Правда, я так и не понял, почему нельзя в прототип метод положить? |
У меня с использованием
alert(a.getX) просто выводитса код функции |
<html>
<body>
<script language="javascript" type="text/javascript">
function A(x) {
this.x = x;
}
A.prototype.getX=function(){return 15}
var a = new A(10);
var b = new A(20);
// ну тут понятно
alert(a.hasOwnProperty('x')); // true
alert(b.hasOwnProperty('x')); // true
alert(a.isPrototypeOf('x'));//false
// а здесь почему, если ты говоришь, что
// метод getX - один на оба объекта
alert(a.hasOwnProperty('getX')); // false
alert(b.hasOwnProperty('getX')); // false
alert(a.isPrototypeOf('getX'));
alert(a.getX)
</script>
</body>
</html>
|
Цитата:
|
| Часовой пояс GMT +3, время: 17:58. |