假设我有自行车对象,其属性为 {retired:true} ,我想准备一些过滤器,例如功能和 notFunctioning :
var BikeChecker = {
functioning: function(bike) {
return (bike.retired != true);
},
notFunctioning: function(bike) {
return !functioning(bike);
};
如何从 notFunctioning 中访问功能,从而避免从头开始编写 notFunctioning ?
我想避免:
notFunctioning: function(bike) {
return (bike.retired == true);
}
请不要建议!运行(自行车)而不是定义 notFunctioning(自行车)(因为angular-js不允许我否定功能传递给过滤器'过滤器')
答案 0 :(得分:1)
你不能直接。您不能直接引用尚不存在的对象文字。
常见的模式是使用工厂(IIFE),以便您的对象存储在您可以参考的变量中:
var BikeChecker = (function(){
var b = {};
b.functioning = function(bike) {
return (bike.retired != true);
};
b.notFunctioning = function(bike) {
return !b.functioning(bike);
}
return b;
})();
另一种模式是使用原型,以便您可以引用this
,但我不建议将其用于单身人士。