我有这个文字符号对象(取出了不相关的部分):
var work = {
"display": function displayWork(){
for(i in work.jobs){
$('#workExperience').append(HTMLworkStart);
var formattedEmployer = HTMLworkEmployer.replace('%data%', work.jobs[i].employer);
var formattedTitle = HTMLworkTitle.replace('%data%', work.jobs[i].title);
var formattedEmployerTitle = formattedEmployer + formattedTitle;
var formattedWorkDates = HTMLworkDates.replace('%data%', work.jobs[i].dates);
var formattedWorkLocation = HTMLworkLocation.replace('%data%', work.jobs[i].location);
var formattedWorkDescription = HTMLworkDescription.replace('%data%', work.jobs[i].description);
$('.work-entry:last').append(formattedEmployerTitle);
$('.work-entry:last').append(formattedWorkDates);
$('.work-entry:last').append(formattedWorkLocation);
$('.work-entry:last').append(formattedWorkDescription);
}
}
};
我试过用它来调用它:
work.display.displayWork();
displayWork();
$(work.display).displayWork();
这些都没有奏效。我该如何调用此功能?
如果我将函数放在文字符号对象之外,那么我可以用以下函数调用它:
displayWork();
答案 0 :(得分:4)
像这样:
work.display();
work
对象的display
属性引用该函数。
因为你的函数是用函数表达式创建的,所以名称displayWork
只能在函数中使用,所以如果函数不需要自己调用(递归),你可以选择省略这个名字只是说display : function() { ... }
。
答案 1 :(得分:0)
正确的方法如下:
$("#flair").get(0)
由于work.display();
是对象的属性,我们可以使用点符号来访问它,display
来评估它指向的函数。
答案 2 :(得分:0)
正确的方法是:
work.display();
但是如果对象 HTMLworkStart 不在全局范围内,则可能会丢失。所以你应该把它设置为参数:
var work = {
"display": function (HTMLworkStart){
...
}
然后你必须打电话给
work.display(HTMLworkStart);