首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Raphael.js中扩展_engine

在Raphael.js中扩展_engine
EN

Stack Overflow用户
提问于 2012-08-07 22:40:31
回答 1查看 464关注 0票数 0

似乎我不理解javascript中的一些基本原理,

我有以下代码:

代码语言:javascript
运行
复制
Raphael.fn.group = function() {
    var out = Raphael._engine.group(this);
    this.__set__ && this.__set__.push(out);
    return out;
};
(window.Raphael.svg &&
function(e) {
    e.group = function(svg) {
        //Want this to be called $ function defined in Raphael._engine 
        // as var $=function(..){..}
        // line 3780
        var el = $("g");
        svg.canvas && svg.canvas.appendChild(el);
        var res = new Element(el, svg);
        res.type = "group";
        return res;
    }
})(window.Raphael._engine);
var paper = Raphael("out", 800, 600);
//test with circle;
paper.circle(100, 100, 50);
//test with new method;
paper.group();​

所以我发现$ near注释行是从全局作用域得到的,而不是从Raphael._engine作用域得到的,这里有没有什么方法可以扩展_engine,或者我应该修补拉斐尔来做这样的事情?

http://jsfiddle.net/YV2SR/4/

more simple jsfiddle - without raphael at all

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-08 01:02:11

啊,最后一次编辑。

不,你不能在一个对象构造函数中定义var $,而不修改源代码以某种方式公开$。这是相当于私有属性的JavaScript。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11848394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档