var Person = function(){};
function klass() {
initialize = function(name) {
// Protected variables
var _myProtectedMember = 'just a test';
this.getProtectedMember = function() {
return _myProtectedMember;
}
this.name = name;
return this;
};
say = function (message) {
return this.name + ': ' + message + this.getProtectedMember();
// how to use "return this" in here,in order to mark the code no error.
};
//console.log(this);
return {
constructor:klass,
initialize : initialize,
say: say
}
//return this;
}
Person.prototype = new klass();
//console.log(Person.prototype);
new Person().initialize("I :").say("you ").say(" & he");
如何在“说”中使用“return this”,以便标记代码没有错误。
我想知道如何在已经返回的函数中进行“链式调用”?
答案 0 :(得分:0)
您需要将类实例返回到链式调用。我建议你为所有能够存储类输出的对象创建一个基类,并在“toString”或类似函数中返回它,也许是“输出”。
然后您的代码变为:
(new Person()).initialize("I :").say("you ").say(" & he").toString();
答案 1 :(得分:0)
只能返回一个对象。
所以你有两个选择。
One - 在函数ans中显示消息,返回this
say = function (message) {
// show the message here e.g. using an alert
alert(this.name + ': ' + message + this.getProtectedMember());
// then return instance
return this;
};
Two - 返回包含实例和消息的对象
say = function (message) {
message = this.name + ': ' + message + this.getProtectedMember();
return {message:message, instance:this};
};
并将其称为
new Person().initialize("I :").say("you ").instance.say(" & he");