有没有办法添加我自己的'原型功能'在流星?
即即,
Element.prototype.hasClass = function (className) {
return new RegExp(' ' + className + ' ').test(' ' + this.className + ' ');
};
有没有办法在客户端文件夹中使用它并在客户端文件夹中的任何地方使用它?
答案 0 :(得分:1)
Meteor是一个纯粹的JavaScript的Node.JS框架。从那里你可以做你通常可以做的所有事情,包括向现有原型添加方法或完全修改它们(比如更改Array
原型以在数组上添加方法)。
但是,不鼓励这种行为。它在您的代码和您定义环境的方式之间创建了非常高的耦合。它也可能导致库中出现强烈的不兼容性和功能障碍。
如果您需要在包/插件/框架上更改原型(例如添加自己的功能),请参阅其文档(例如,有些人可能建议使用extend()
编写对象。
不要更改默认的JS对象原型。
这是一个关于如何创建自定义原型然后将其与对象一起使用的小例子:
var userPrototype, user;
userPrototype = {
sayHi : function() {
if(_.has(this, name)) {
return 'Hi, my name is ' + this.name + '!';
}
return '... Who am I?';
}
};
user = Object.create(userPrototype); //user has userPrototype as prototype
user.name = 'Will';
user.sayHi(); //Returns 'Hi, my name is Will!'
作为奖励,这里有关于JS和原型的free book。