小编fai*_*cpt的帖子

Small:中的":="和二进制消息优先级

我试图通过Dolphin Smalltalk X6附带的教程学习Smalltalk.

我的问题涉及对具有多个消息的表达式的评估.

我的理解是首先评估简单消息,然后评估二进制消息,最后评估关键字消息(括号中的代码除外).但是,我无法将这种理解应用到以下示例中的第二行(在Dolphin Smalltalk教程中找到).

    playground := Playground new.
    teresa := playground add: Triangle new.       "Misunderstood code"
    teresa class.                                 "Evaluates to 'Triangle'"
Run Code Online (Sandbox Code Playgroud)

如果我的理解是正确的,那么第二行将被评估:

    1. Simple message 'new' sent to Triangle, triangle object as response
    2. Binary message ':=' with parameter 'playground' sent to 'teresa'.
    3. Keyword message 'add:' with parameter 'triangle object' sent to 'teresa'.
    4. teresa class. "evaluates to 'Playground'".
Run Code Online (Sandbox Code Playgroud)

我的误解是'teresa'如何引用匿名Triangle对象而不是'playground'引用的Playground对象.

我已经查阅了Smalltalk评估的第二个解释,提到:=或添加:是特殊情况没有成功,我能想到的唯一其他解释是一个根本的误解.

任何帮助拉直我的帮助?

programming-languages smalltalk squeak seaside

4
推荐指数
2
解决办法
222
查看次数

由于innerHTML的使用,JavaScript onclick函数未绑定

我有一个javascript函数,我打算用它来创建/添加一个'subLink'div的链接,并在这个链接上添加一个onclick事件,将相关的'content'加载到contentDiv:

function addSubLink(text, name, content) {
// append programLink span to subLinks:
    document.getElementById("subLinks").innerHTML += "<span class=\"programLink\" id=\"" + name + "\">" + text + "</span>";
// load program content onclick:
    document.getElementById(name).onclick = function () {
        // set value of programContent to content's value
        document.getElementById("programContent").innerHTML = content;
    }
}
Run Code Online (Sandbox Code Playgroud)

例如,loadAboutPage()将调用此函数以填充subLink div

var whatContent = "<p>A website!</p>";
var whyContent = "<p>Recreation!</p>";
var howContent = "<p>Kludges.</p>";
addSubLink("WHAT", "whatLink", whatContent);
addSubLink("WHY", "whyLink", whyContent);
addSubLink("HOW", "howLink", howContent);
Run Code Online (Sandbox Code Playgroud)

问题是只有最后一个subLink附加了一个onclick事件(加载内容并更改css类).也就是说,它会创建WHAT,WHY和HOW链接,但只会将onclick函数附加到最后调用的函数:HOW,在这种情况下.

谈到JavaScript,我非常生疏,所以我不知道这是因为我对匿名函数缺乏了解,还是错误地使用本地'name'变量,或者其他完全不同的东西.我已经搜索了一段时间,但似乎我太无知甚至无法弄清楚类似的问题会是什么!

无论如何,我非常感谢你的帮助!提前致谢!

编辑:

这是一个完整的HTML示例:

<!DOCTYPE html PUBLIC …
Run Code Online (Sandbox Code Playgroud)

html javascript dom

1
推荐指数
1
解决办法
2625
查看次数