Цитата:
|
Все ущли завтро договорим=)
|
Цитата:
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, время: 16:32. |