當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JS中写继承的方式
有父子兩個函數,代表兩個類:
var parent = function(){} var child = function(){}一、直接繼承
child.prototype = new parent(); child.prototype.constructor = child;這種方式有風險,說是如果parent中有this,然后parent在其他地方給this混入了其他東西,child的繼承原型中就會莫名多了其他不屬于他們的東西,這樣不好。。。
二、借助中間空函數
var nop = function(){} nop.prototype = parent.prototype; child.prototype = new nop(); child.prototype.constructor = child;空函數的辦法,就解決了第一種方法的隱患,空函數中沒有任何this相關的隱患,如果封裝在一個繼承函數里,函數外面根本拿不到里面的這個空函數,安全可靠。
三、Object.setPrototypeOf
Object.setPrototypeOf(child.prototype,parent.prototype);該方法是ES6新增的設置原型的方法,它可以直接關聯兩個對象,而不需要重新將child的constructor手動拉回,簡單方便,實在是原型繼承,必備良藥。
四、Object.create
child.prototype = Object.create(parent.prototype);child.prototype.constructor = child;
?此種方法也是安全可靠,使用方便無隱患,缺點也是需要手動設置一下自己的constructor.
轉載于:https://www.cnblogs.com/liujiekun/p/11532807.html
總結
- 上一篇: Linux 设置端口转发
- 下一篇: 11.23关于微信JSAPI缺少参数的问