今天朋友面试时候碰到的一道面试题,原始代码里的内容是不能改的,最终目标是输出"我有3个APPLE"这句话
补充代码里的是我目前的答案,但是:
1.A.prototype.total=3这个写法有点搓,不知道怎么优化了
2.另外initialize这个方法应该如何调用呢?
下面上代码
// 补充代码使得代码可以输出规定的内容
// 原始代码 start
var A = function() {
this.name = 'apple';
}
A.prototype.getName = function() {
return this.name;
}
// 原始代码 end
//补充代码 start
//浅复制对象,把参数内的方法名复制给A
A.extend = function(source) {
for(property in source){
this.prototype[property]=source[property];
}
return this;
}
A.prototype.total=3;
//补充代码 end
//原始代码 start
var B = A.extend({
initialize: function() {
this.superclass.initialize.call(this);
this.total = 3;
},
say: function() {
return '我有' + this.total + '个' + this.getName()
}
});
var b = new B();
//console.log(b.initialize());
console.log(b.say()); //我有3个APPLE
// 原始代码 end
牧羊人nacy
相关分类