jquery对原型的扩展
jquery extend of prototype
我在html页面中使用了一些javascript代码,.js文件如下所示:
(
function(exports){
var cubism = exports.cubism = {version: "1.3.0"};
var cubism_id = 0;
function cubism_identity(d) { return d; }
...
}
)(this);
我想在基本库中添加一些新功能,所以我做了以下操作(在coffeescript中很抱歉):
jQuery.extend cubism.context.prototype,
"horizon": () ->
metric = cubism_identity
问题是当我运行我得到的代码时:
Uncaught ReferenceError: cubism_identity is not defined
如何访问扩展原型中的函数cubism_identity()
?
函数在其定义的范围内可用,而不是在更高级别的范围内,除非它被指定为更高级别对象的属性。
按照您编写代码的方式,cubism_identity()
是一个仅在function(exports){
函数体范围内可见的函数。如果您希望它在该范围之外可用,则必须在更高的范围中定义它,然后才能使用它,或者必须将它分配为某个更高级别对象的属性,如window
或您自己的命名空间对象。
例如,您可以将其移动到全局范围:
function cubism_identity(d) { return d; }
(
function(exports){
var cubism = exports.cubism = {version: "1.3.0"};
var cubism_id = 0;
...
}
)(this);
不过,通常最好将其放在全局命名空间对象上,这样就不会向全局范围添加超出需要的内容。
或者,相反地,您可以在function(exports)
主体中定义使用它的函数,这样它就可以在您最初拥有它的地方使用它。
相关文章:
- “util.inherits”和在NodeJS中扩展原型之间的区别
- JavaScript:动态扩展原型是一种糟糕的做法
- 使用第二个原型扩展对象
- 如何在Typescript中添加具有扩展原型的文件
- 如何扩展使用原型的javascript模块
- 在ECMAScript 5之后重新扩展本机原型
- 具有扩展原型的JavaScript本地对象;在“;环
- 如何使用Javascript扩展对象'的原型使用声明中的变量
- document.registerElement-为什么我们需要同时指定'原型'和'扩展'
- 在Javascript中扩展继承的原型方法
- Javascript扩展对象's原型,但保留旧原型
- 原型&在SAPUI5(Component.js)中进行扩展
- 用原型扩展Javascript Form对象
- 如何为特定的javascript对象扩展数组或对象原型
- 如何在完全独立的.js文件中覆盖/扩展原型.js类
- 希望扩展原型方法
- 使用装饰器扩展原型
- 覆盖和扩展原型
- 扩展原型方法
- jQuery是否保证它与Array或Object的扩展原型的兼容性?