与变量值同名的函数存在,但是接收到typeError,为什么?
Javascript: Function with same name as variable value exists but receiving typeError, Why?
我不明白为什么我得到"Uncaught TypeError: ops is not a function"
,而ops
持有multiply
,因此ops()
解析为multiply()
,并在范围内定义了multiply()
函数。
var product = 1;
var sum = 0;
var x = parseInt(prompt("Enter a No. ", 10));
var ops = prompt("Addition/ Multiplication", "multiply");
var y = x;
var operation_type = function (ops){
var ops = ops;
return ops;
}
var ops = operation_type(ops);
// console.log(ops);
console.log(ops(x));
// ops(x);
function addition (x) {
for (i=0; i< x; i++) {
sum = sum + y;
y = y - 1;
}
sum = "Recursive sum of " + x + " is: " + sum;
document.getElementById('result').innerHTML = sum;
}
function multiply(x) {
for (i=0; i< x; i++) {
product = product*y;
y = y - 1;
}
product = "Recursive Product of " + x + " is: " + product;
document.getElementById('result').innerHTML = product;
}
谢谢bt
var operation_type = function (ops){
var ops = ops; // useless declaration/assignment
return ops; // return original argument value
}
var ops = operation_type(ops);
console.log(ops(x));
operation_type
只是返回您传入的值,一个字符串,并将其赋值给ops
变量。做ops(x)
尝试调用ops
,一个字符串,作为一个函数。您可能想要做的是动态选择在x
上操作的函数。
operation_type
函数应该返回实际的函数对象。指定名称的函数可以使用括号符号(例如:console.log(window[ops](x))
):
var operation_type = function (ops){
return window[ops];
}
var ops = operation_type(ops);
console.log(ops(x));
相关文章:
- 为什么第二次使用$state.transitionTo()会导致“;TypeError:无法读取属性'$$next
- 为什么我会得到错误Uncaught TypeError:无法设置属性'显示'在Javascript中未定
- 为什么TypeError:document.getElementById()为null
- 为什么在修改String.prototype后创建jQuery插件时出现TypeError
- 为什么process.nextTick()在这个“假异步函数”中触发了一个TypeError,而setTimeout()
- 以两种不同的方式编写函数:一种方式会导致 TypeError,另一种方式不会.为什么
- 为什么“TypeError: f 不是一个函数”
- 为什么我一直在angularJS中获取未定义的TypeError设置属性
- 在knockout.js中为可观察对象添加属性后为什么出现TypeError
- 为什么以下javascript抛出TypeError
- 为什么不'对象点表示法对未知类型的对象有效吗?(TypeError:undefined不是对象)
- UnCaught TypeError-Javascript中的嵌套对象?为什么不允许这样做?对象文字表示法有效
- 为什么我得到“;TypeError:对象不是函数“”;运行此示例node.js代码
- 基本OOP & &;为什么我得到TypeError
- 为什么我得到,“未捕获的TypeError: getEnumerator不是一个函数”
- 为什么我得到"TypeError: Cannot read property 'value'n
- 与变量值同名的函数存在,但是接收到typeError,为什么?
- 为什么我得到,"Uncaught TypeError: Cannot read property 'h
- 为什么长度属性会出现TypeError
- link元素上的click()返回一个TypeError..为什么