我正在为Number创建一个原型函数。一旦我调用它,我就会返回[Function]或我的函数体。我想知道我做错了什么。感谢帮助。
Number.prototype.splitDigits = function(){
var str = this.toString;
var arrayDigits = [];
var length = str.length;
for (var i = 0; i<length; i++){
arrayDigits.push(Number(str.charAt(i)));
}
return arrayDigits;
};
我正在调用这样的函数:
var num = 2000;
var array = num.splitDigits;
我得到的回报是:
[Function]
或
a0 function (){
var str = this.toString;
var arrayDigits = [];
var length = str.length;
for (var i = 0; i<length; i++){
arrayDigits.push(Number(str.charAt(i)));
}
return arrayDigits;
}
答案 0 :(得分:1)
你不打电话给这个功能。只是,你在为阵列提供功能。
将以下代码托盘调用功能。
var num = 2000;
var array = num.splitDigits();
答案 1 :(得分:1)
您需要调用函数
没有大括号,您只需访问为Number定义的属性。这是一个功能。
答案 2 :(得分:1)
代码中有两个错误。
修复后
Number.prototype.splitDigits = function(){
var str = this.toString();
var arrayDigits = [];
var length = str.length;
for (var i = 0; i<length; i++){
arrayDigits.push(Number(str.charAt(i)));
}
return arrayDigits;
};
生成强>
> var num = 2000;
> var array = num.splitDigits();
> array
[2, 0, 0, 0]
答案 3 :(得分:1)
您没有调用此功能。如果您不想明确地调用它,可以使用getter:
Object.defineProperty(Number.prototype, 'splitDigits', {
configurable: true,
get: function() {
var str = this.toString();
var arrayDigits = [];
var length = str.length;
for (var i = 0; i<length; i++){
arrayDigits.push(Number(str.charAt(i)));
}
return arrayDigits;
}
});
var num = 2000;
console.log(num.splitDigits);
&#13;
请注意,您的代码无法使用1e100