至少在我的例子中,在 php 中,使用魔术方法是很常见的——至少在定义你的核心类时,大多数其他东西都将从中扩展。
php 中的魔术方法与常规方法的规范不同。例如,我书中最常用的方法之一是 __construct()
每次加载类时都会执行该构造。因此,例如,如果您希望您的班级自我介绍,您可以执行以下操作:
<?php
class Person
{
function __construct($name)
{
$this->name = $name;
$this->introduceYourself();
}
public function introduceYourself()
{
//if $this->name then echo $this->name else echo i dont have name
echo $this->name ? "hi my name is " . $this->name : "error i dont have name";
}
}
$dave = new Person('dave');
通常,您不会将某些内容传递给构造。
我遇到的其他一些半常见的包括:
__call() 允许您更改调用方法的默认方式。一个很好的例子是一个覆盖,它允许您在使用任何以单词 get 开头的方法时获取属性值,或者在方法调用以单词 set 开头时设置属性值。
__get() 用作类属性的过度加载器,我不使用,但有人可能会感兴趣。
__set() 用作类属性的重载器,我不使用,但有人可能会感兴趣。
__destruct() 我也不使用,只要没有对特定对象的其他引用,或者在关闭序列期间以任何顺序调用,就会调用。
问题
javascript里面有这样的魔法方法吗?
是否有任何隐藏的宝石是新的 javascript 程序员应该知道的,就像我上面为 php 描述的那些?