javascript代码解释

标签 javascript dojo javascript-framework

有人可以向我解释这段代码的作用吗?

dojo[(show ? "remove" : "add") + "Class"](this.listNode, "tweetviewHidden");

这是这个函数值所属的函数:

// Provide the class
dojo.provide("tweetview._ViewMixin");
 
// Declare the class
dojo.declare("tweetview._ViewMixin", null, {
    // Returns this pane's list
    getListNode: function() {
        return this.getElements("tweetviewList",this.domNode)[0];
    },
    // Updates the list widget's state
    showListNode: function(show) {
        dojo[(show ? "remove" : "add") + "Class"](this.listNode, "tweetviewHidden");
    },
    // Pushes data into a template - primitive
    substitute: function(template,obj) {
        return template.replace(/\$\{([^\s\:\}]+)(?:\:([^\s\:\}]+))?\}/g, function(match,key){
            return obj[key];
        });
    },
    // Get elements by CSS class name
    getElements: function(cssClass,rootNode) {
        return (rootNode || dojo.body()).getElementsByClassName(cssClass);
    }
});

来源:http://dojotoolkit.org/documentation/tutorials/1.6/mobile/tweetview/starting_tweetview

最佳答案

很简单,如果 show 为真,它将调用 dojo.removeClass(this.listNode, "tweetviewHidden"); 如果为假,它将调用 dojo.addClass(this .listNode, "tweetviewHidden");. 本质上它是一个切换功能。

[ ] 括号打开一个对象以通过键访问值。就像 var bla={"foo":"bar"}; bla["foo"];。现在,由于它的道场,值是一个函数,它将被执行

关于javascript代码解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6528950/

相关文章:

javascript - 如何使用 AngularJS 对多个对象应用过滤器?

javascript - 编辑页面的 <body> 时无法在 Firefox 中单击按钮

Javascript:加载视频时出错,但仅在 Chrome 上发生

javascript - 将远程 HTML 中的图像 URL 解析为 JSON

javascript - 如何告诉 Chrome,请为每个站点或任何操作使用浏览器中的本地 javascript?类似于 歌剧

javascript - 创建一个延迟等待用户输入的 dojo

javascript - can.Control.defaults 和选项合并

Javascript - 无法推送到内部对象

javascript - jquery 是否与 dojo.connect() 等效?

AngularJs 引用错误 : $http is not defined