【发布时间】:2012-01-31 07:13:15
【问题描述】:
最近在“JavaScript the Good Parts”学习Js,据我了解
Object.propertyName 产生与Object["propertyName"] 相同的结果(如果我不正确,请纠正我并描述两者的区别)。
我正在尝试扩充 Function.prototype 以使 方法 可用于所有函数,如下所示:
Function.prototype.method = function (name, func) {
this.prototype[name]= func;
};
它工作正常。但是,当我用this.prototype.name 替换this.prototype[name] 时,它会按预期运行失败!
这就是我测试它的方式:
Number.method("myRoundFunction", function () {
return Math[this < 0 ? "ceil" : "floor"](this);
});
console.log((-10 / 3).myRoundFunction());
这显示了使用this.prototype[name]时的预期值(-3),但是
(-3.3333333333333335).myRoundFunction 不是函数
关于将其更改为this.prototype.name
有人能解释一下为什么会这样吗?
提前感谢您的帮助。
【问题讨论】:
标签: javascript