众所周知,在JS中,你可以在函数内部创建一个函数,就像这样:
function digit() { return 9 };
digit.five = function() { return 5 };
digit(); // 9
digit.five() // 5
我不知道这是否是一个不好的做法(很可能是),但既然它可以正常工作,你可以使用它。
但是,如果我们有一个像下面例子中的某个对象的方法一样的 digit()
函数呢?
那么我们如何声明 digit.five()
?假设我们想在 obj
的范围内声明它。
var obj = {
digit: function() { return 9 },
// digit.five: … ???
// digit["five"]: … ???
}
obj.digit(); // 9
obj.digit.five() // 5
是否有可能不创建新的obj.digitFive()
方法就能实现呢?
P.S: 用户nnnnnn在此处说,我们可以在obj.digit()
内创建一个属性:
var obj = {
digit: function () {
return 9;
obj.digit.five = function () { return 5 };
}
}
这是唯一的方法吗?