繁体   English   中英

调用存储在文字符号对象中的变量

[英]Calling a variable stored in a literal notation object

我有这个文字符号对象(拿出不相关的部分):

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();

像这样:

work.display();

work对象的display属性是指函数。

因为你的函数是用函数表达式创建的,所以名称displayWork只能在函数中使用,所以如果函数不需要自己调用(递归),你可以选择省略这个名字,然后说display : function() { ... }

正确的方法如下:

work.display();

由于display是对象的属性,我们可以使用点符号来访问它,并使用()来评估它指向的函数。

正确的方法是:
work.display();

could be missing if it is not in the global scope. 但是,如果对象不在全局范围内,则可能会丢失该对象。 所以你应该把它设置为参数:

 var work = {
    "display": function (HTMLworkStart){
    ...
    }

然后你必须打电话
work.display(HTMLworkStart);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM