我试图从每个对象键执行一个函数,这里是代码。
var testObj = { text: "this is text" , alltext: "this is all text" };
function text() {
alert("this is test function for first value");
}
function alltext() {
alert("this is test function for first second!");
}
for (item in testObj) {
console.log(item);
item();
}
这让我觉得item
不是一个功能。
请访问此链接查看原始代码。我正在使用Backbone.js创建一个表单。代码已注释。
http://vianx.com/tst/script2.js
在这种情况下,“fieldConstructor”不是函数。
答案 0 :(得分:0)
所以我相信你错误地认为字典在javascript中是如何工作的。第一个值是一个键,它将始终是一个字符串值,可以执行您希望的操作
var testObj = [[text, "this is text"] , [alltext, " thi is all text" ]];
function text () {
alert( "this is test function for first value");
}
function alltext () {
alert( "this is test function for first second!" );
}
for ( index in testObj ) {
console.log(index);
testObj[index][0]();
}
答案 1 :(得分:0)
您应该使用JavaScript eval
功能:
Select * from DATABASE
答案 2 :(得分:0)
或者您可以在对象中引用这些功能
var testObj = { text: text , alltext : alltext };
function text() {
alert( "this is test function for first value");
}
function alltext() {
alert( "this is test function for first second!" );
}
for ( item in testObj ) {
console.log(item);
testObj[item]();
}
答案 3 :(得分:0)
构造testObj是这样的:
var testObj = {
text: function(){alert("this is test function for first value")} ,
alltext : function(){alert("this is test function for first second!")}
};
然后只需致电testObj.a();
答案 4 :(得分:0)
您可以通过将动态函数附加到窗口对象来完成。
var testObj = { text: "this is text", alltext: " thi is all text" };
for (var item in testObj) {
window[item] = function () {alert("hello world")};
}
console.log(window['text'],window['alltext']);
window.text();
window.alltext();
也可以在不使用“窗口”的情况下调用这些函数。即:
text();
alltext();
或者,如果您想要动态调用属性名称的函数...
var testObj = { text: "this is text", alltext: " thi is all text" };
window['text'] = function() {
alert("this is test function for first value");
}
window['alltext'] = function (){
alert("this is test function for first second!");
}
for (var item in testObj) {
window[item]();// = function () {alert("hello world")};
}