我现在正在学习Mootools课程,而且有些事我似乎无法理解或找到一个体面的例子。
基本上,我需要能够在同一个类的不同函数内调用函数;以下示例:
var Bob = new Class({
initialize: function () {
this.message = 'Hello';
},
someOther: function() {
this.message2 = 'Bob';
},
getMessage: function() {
return this.someOther();
},
});
window.addEvent('domready', function() {
var map = new Bob;
alert(map.getMessage());
});
从这段代码中,我会认为警报会产生'Bob',它已在函数'someOther'中设置,但它正在输出未定义的消息。
任何人都可以帮助或指出我哪里出错了吗?
提前致谢,
答案 0 :(得分:4)
不完全。
someOther
本身没有返回值,它是一个setter。你调用它,它会将this.message2
设置为类,但它不返回任何内容。当getter时,方法应return this
(实例,使其可链接)或值。
无论如何,您可以设置属性并将其返回:
var Bob = new Class({
initialize: function() {
this.message = 'Hello';
},
someOther: function() {
return this.message2 = 'Bob'; //bad
},
getMessage: function() {
return this.someOther(); // why
},
});
window.addEvent('domready', function() {
var map = new Bob;
alert(map.getMessage());
alert(map.message2); // bob
});
但是,从语义上讲,你想拥有1个吸气剂。 .getMessage
应该return this.message
- 您可以编写一个不同的方法来调用someOther并返回它。
在我前几天写的类上下文中看看这个模式的getter / setter: http://fragged.org/using-overloadsetter-overloadgetter-to-make-flexible-functions-in-mootools_1451.html
等等以获得更多帮助,请查看keetology blogs或davidwalsh.name - 或者mootorial - 大量的类使用和结构示例。
这里列出了大多数关键词:https://stackoverflow.com/tags/mootools/info