无 new 实例化
(function(global) {
// 构造函数
const className = function() {
// this一全局对象|父级作用域
console.log(this);
return new className.prototype.init();
};
//帮助构造函数实现无new实例化的函数。
className.prototype.init = function() {
// 将ini t函数的原型执向构造函数的原型,并返回自身
className.prototype.init.prototype = className.prototype;
return this;
};
//因为使用了闭包,外部访问不到当前className,所以将该类挂载到传递进来的全局对象globall window
if (!global.className) {
global.className = className;
}
})(global);
网友评论