扫码关注官方订阅号
例如:
function obg(){ this.name = '默认' } var boom = { "url":"http://xxx.cc/xxxx" }
我的需求是把boom继承new 一个obg对象里的所有属性,能吗?
小伙看你根骨奇佳,潜力无限,来学PHP伐。
可以使用ES6提供的Object.setPrototypeOf,这比较简单。
Object.setPrototypeOf
Object.setPrototypeOf(boom, new obg());
这实际上是修改原型链来实现扩展,在Chrome或Firefox的实现中相当于:
boom.__proto__ = new obg();
如果不支持ES6,也可以简单使用Object.assign使用mixin的方式扩展boom
Object.assign
mixin
Object.assign(boom, new obg());
此时的实现就不是修改原型链,而是直接扩展boom对象,这种方式在实践中也是很常用的,有可能比修改原型链的方式更加常用,可以称之为mixin。
boom
Object.assign在IE中也是不支持的,可以引入polyfill,或者自制一个。如果使用jQuery的话,可使用$.extend代替。
jQuery
$.extend
$.extend(boom, new obg());
大神,这个是HTML5的新方法?HTML4有没有方法呢?
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
可以使用ES6提供的
Object.setPrototypeOf,这比较简单。这实际上是修改原型链来实现扩展,在Chrome或Firefox的实现中相当于:
如果不支持ES6,也可以简单使用
Object.assign使用mixin的方式扩展boom此时的实现就不是修改原型链,而是直接扩展
boom对象,这种方式在实践中也是很常用的,有可能比修改原型链的方式更加常用,可以称之为mixin。Object.assign在IE中也是不支持的,可以引入polyfill,或者自制一个。如果使用jQuery的话,可使用$.extend代替。大神,这个是HTML5的新方法?HTML4有没有方法呢?