两者之间有区别吗?
app.use('/some/path', function(req, res, next() {})
和
app.all('/some/path', function(req, res, next() {})
它们都是中间件函数,只能被调用/某些/路径请求,对吧?
我在使用JavaScript中的+运算符进行隐式强制时遇到了麻烦.即valueOf和toString的优先级顺序.
var obj = {};
obj.toString(); >'[object Object]"
obj.valueOf(); =>对象{}
'Hello ' + obj; >"Hello [object Object]"
所以obj被隐式强制转换为使用toString()方法而不是valueOf()的字符串;
var obj2 = {
toString: function() {
return "[object MyObject]";
},
valueOf: function() {
return 17;
}
};
Run Code Online (Sandbox Code Playgroud)
obj2.toString(); >'[object MyObject]"
obj2.valueOf(); => 17
'Hello ' + obj2; >"你好17"
因此,当我覆盖toString和valueOf方法时,+运算符将强制使用valueOf.
我错过了什么?谢谢.