老师,为什么我这样创建混合实例是不对的?
来源:7-3 -3 扩展接口 - 混合对象实现+ demo 编写

前端渣渣灰
2019-06-27
class axios {
request() {
console.log('request')
}
a() {
console.log('a')
}
b() {
console.log('b')
}
}
function createInstance() {
let ctx = new axios()
let instance= axios.prototype.request.bind(ctx)
extend(instance, ctx)
return instance
}
function extend(to, from) {
for (var key in from) {
to[key] = from[key];
}
return to;
}
let testInstance = createInstance()
testInstance()
testInstance.a()
Uncaught TypeError: testInstance.a is not a function
写回答
1回答
-
因为咱们的项目配置的编译目标是es5, es5时for-in能获取原型的属性,
es6不行,你这段代码直接执行是es6环境,可以tsc --target es5 | es6来测试122019-06-28
相似问题
请问老师这里为什么是promise
回答 2
创建 AxiosError 类 的必要性
回答 2