__construct() 不需要,JavaScript 早有 constructor。
__destruct():JavaScript 中没有对象销毁的钩子机制。
__call():与 PHP 相反,方法就像 JavaScript 中的属性一样,首先通过 __get() 获取。要实现 __call(),你只需从 get() 返回一个函数。
__callStatic():与 __call() 类似,但是具有 __getStatic()。
__sleep(),__wakeup():JavaScript 没有内置序列化与反序列化。你可以使用 JSON.stringify() 与 JSON.parse(),但是它们没有机制自动触发的任何方法。
__toString() 在早有对应 JavaScript 的 toString()
__invoke():如果你试图调用一个非函数对象,JavaScript 将会抛出一个错误,这将无法避免。
__set_state():JavaScript 中没有类似于 var_export() 的东西。
__clone():JavaScript 中内置克隆功能的钩子。
__debugInfo(): 无法挂接到 console.log() 输出。
我可以使用魔术方法扩展类吗?
是的,在一定程度上:
1 2 3 4 5 |
|
但是遗憾的是,你无法从子类中访问父类中的属性:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
推荐教程:《JS教程》
以上就是在 JS 中使用类似 PHP 的魔术方法的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
更多相关阅读请进入《js》频道 >>
Vue.js 设计与实现 基于Vue.js 3 深入解析Vue.js 设计细节
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者