0

请参考下面的原型。

var sfSvgRender = function (element) {
    this.svgLink = "http://www.w3.org/2000/svg";


};
sfSvgRender.prototype = (function () {
    this.drawPath = function (options, element) {

        var path = document.createElementNS(this.svgLink, "path");
        $(path).attr(options);
        $(path).appendTo(element);

    }
})();

当我创建这样的对象时

var svgRenderObj= new sfSvgRender();

svgRenderObj 仅包含“svgLink”属性。我无法访问“drawpath”功能。我如何访问 jquery 中的原型函数?

谢谢,

湿婆

4

2 回答 2

1

您想将原型设置为一个对象,因此您必须创建一个。利用new

sfSvgRender.prototype = new (function () {
    this.drawPath = function (options, element) {    
        var path = document.createElementNS(this.svgLink, "path");
        $(path).attr(options);
        $(path).appendTo(element);    
    }
})();

您还可以使用对象文字

sfSvgRender.prototype ={
    drawPath: function (options, element) {

        var path = document.createElementNS(this.svgLink, "path");
        $(path).attr(options);
        $(path).appendTo(element);

    }
};
于 2013-04-17T05:48:13.060 回答
0

我找到了另一种解决方案。请参阅下面的代码片段。

sfSvgRender.prototype ={
    drawPath: function (options, element) {

        var path = document.createElementNS(this.svgLink, "path");
        $(path).attr(options);
        $(path).appendTo(element);

    }
};

谢谢,

湿婆

于 2013-04-17T05:58:56.753 回答