что именно делает ключевое слово prototype в jquery? - PullRequest
6 голосов
/ 27 октября 2009

Является ли ключевое слово (или метод?) Прототипом в jquery-подобном методе расширения?

т.е. у всех классов будет эта функциональность, доступная для этого в будущем?

Ответы [ 2 ]

12 голосов
/ 27 октября 2009

Это часть javascript, а не специфичная для jquery.

свойство prototype определяет методы и свойства, общие для всех объектов этого типа.

, например

function MyClass()
{
}

myClass.prototype.myMethod = function()
{
    alert("hello world");
}

var myObject = new MyClass();
myObject.myMethod();

Все экземпляры MyClass будут (совместно использовать) метод myMethod().

Обратите внимание, что методы в прототипе не имеют такой же видимости, как методы, объявленные в конструкторе.

Например:

function Dog(name, color)
{
    this.name = name;

    this.getColor = function()
    {
        return color;
    }
}

Dog.prototype.alertName = function {
    alert(this.name);
}

Dog.prototype.alertColor = function {

    //alert(color);  //fails. can't see color. 
    //alert(this.color); //fails. this.color was never defined

    alert(this.getColor()); //succeeds
}

var fluffy = new Dog("Fluffy","brown");
5 голосов
/ 27 октября 2009

prototype не является ключевым словом jQuery; это ключевое слово Javascript. Он используется для добавления открытых функций к объектам таким образом, что они будут существовать каждый раз, когда вы создаете новый экземпляр этого объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...