一道关于链式调用的题目
// 使用构造函数的形式
function Hero(name) {
this.name = name;
console.log(name);
return this;
}
Hero.prototype.kill = function () {
console.log('kill');
return this
}
Hero.prototype.sleep = function (time) {
var start = new Date().getTime();
console.log('Timeout');
while((start + time * 1000) > new Date().getTime()) {
}
return this;
}
// 创建一个实例
var hero = function(name) {
return new Hero(name);
}
console.log(hero('Gping'));
hero("37er").kill(2).sleep(5).kill(1);
// 使用对象的形式
var Hero = function(text) {
console.log('Hello ' + text)
var obj = {
kill: function(num) {
if (num == 1) {
console.log('kill');
} else {
console.log('kills');
}
return this;
},
sleep: function(time) {
var start = new Date().getTime();
console.log('timeOut');
while((start + time*1000) > new Date().getTime()) {
}
return this;
},
recover: function(num) {
console.log('recover ' + num);
return this;
}
}
return obj;
}