Что означает fn при использовании в Рафаэле? - PullRequest
3 голосов
/ 12 октября 2010

Я видел использование fn в Raphael, лаборатории javascript.

Raphael.fn.g.piechart = function (cx, cy, r, values, opts) {
  // blah...blah
}

это расширяет рафаэль, так что люди могут использовать как r = Рафаэль; r.g.piechart.

Я ищу в Google, и мне кажется, что у меня ничего не ясно. надеюсь, вы поможете.

Ответы [ 6 ]

8 голосов
/ 12 октября 2010

fn используется для добавления ваших собственных методов на холст .

Любые методы, которые вы добавите к fn, будут работать на холсте.Это в отличие от методов, которые будут работать на , например, элемент (для которого вы будете использовать el).

С момента расширения объекта fnбудет действовать на холсте, вы должны добавить свои пользовательские методы перед созданием экземпляра Raphael (это неверно, если вы расширяете el элемента).

Например,из документации:

  // Extend Raphael fn object by adding methods to it:
Raphael.fn.arrow = function (x1, y1, x2, y2, size) {
    return this.path( ... );
}; 
  // or add namespaces to it:
Raphael.fn.mystuff = {
    arrow: function () {…},
    star: function () {…},
    // etc…
};

  // Now when you create a Raphael instance, your custom
  // methods are available.
var paper = Raphael(10, 10, 630, 480);

  // Using custom methods:
paper.arrow(10, 10, 30, 30, 5).attr({fill: "#f00"});

  // Using name spaced custom methods
paper.mystuff.arrow();
paper.mystuff.star();

Обновление (спасибо AleksandraKos):

Обратите внимание, что плагины с пространством имен были удалены в Raphael 2.0

3 голосов
/ 12 октября 2010

Изначально это просто пустой объект, созданный вместе с Raphael, буквально просто:

Raphael.fn = {};

Это обычное место для хранения плагинов , и они вызываются оттуда при создании нового экземпляра.

2 голосов
/ 12 октября 2010

В вашем собственном коде JS Это может быть все, что вы хотите - это не зарезервированное слово , оно не имеет никакого особого значения, поэтому вы можете назвать переменную или метод fn так же, как вы можете используйте имена типа foo или myVariable. В jQuery, например, jQuery.fn === jQuery.prototype (ярлык для авторов плагинов).

2 голосов
/ 12 октября 2010

Это сокращение от функции.

Он используется в качестве пространства имен, в котором Рафаэль хранит все свои функции, что позволяет автоматически применять эти функции к бумажному объекту.

Вы также можете расширить функциональность Рафаэля, добавив к нему функции.

Это похоже на то, как работает jQuery $.fn.

1 голос
/ 12 октября 2010

Ничего особенного с Fn в JavaScript.

1 голос
/ 12 октября 2010

fn ничего особенного в JavaScript.Это просто название свойства, которое использует Рафаэль.Смотри http://raphaeljs.com/reference.html

...