例如,假设我有一个这样的自定义对象:
function MyObject(a, b){
this.prop = a;
this.name = b;
this.doSomething = function(){
return "something";
}
}
var a = new MyObject(4, 'name');
Run Code Online (Sandbox Code Playgroud)
我希望能够将此对象导出为字符串或整数,或者调用它的函数以与Date对象的行为方式类似的方式自动保证的任何格式,即:
console.log(b);
// "name"
console.log(2*a);
// 8
console.log(a.doSomething());
// "something"
Run Code Online (Sandbox Code Playgroud)
我尝试过使用:
MyObject.prototype.toString = function(){ ... }
Run Code Online (Sandbox Code Playgroud)
但它似乎不是我正在寻找的东西,因为我仍然需要调用"a.toString()"
有任何想法吗?
我有一个接受几种不同类型输入的函数,包括:
我推导输入的数字是否是浮点数的方式是这样的:
function getType(i){
if(String(i).indexOf('.') > -1)){
return "float";
} else {
return "number";
}
}
Run Code Online (Sandbox Code Playgroud)
这适用于每一个浮点数,正负,除了 0.0、0.00、0.000 等。
每当我输入一个等于 0 的十进制值时,它会自动从十进制转换为整数,因此输入类型不会注册为浮点数,而是注册为数字。如何阻止这种情况发生,而是读取函数中“i”的真实输入值?
(请注意:在字符串中封装浮点数不是一种选择)