相关疑难解决方法(0)

所有属性的JavaScript getter

长话短说:我的情况是我喜欢PHP式的getter,但是在JavaScript中.

我的JavaScript只在Firefox中运行,因此我可以使用Mozilla特定的JS.

我可以找到制作JS getter的唯一方法是需要指定它的名称,但是我想为所有可能的名称定义一个getter .我不确定这是否可行,但我非常想知道.

javascript getter firefox

48
推荐指数
5
解决办法
3万
查看次数

JavaScript相当于PHP的__get()魔术方法

可能重复:
所有属性的JavaScript getter

JavaScript是否提供了访问未定义对象属性的方法?在PHP中,解决方案是__get()在类中声明和实现方法.
使用try { .. } catch { .. }的解决方案对我来说还不够,因为我已经拥有非常大量的代码,而这些代码实际上需要保持原样.

javascript php get properties undefined

12
推荐指数
1
解决办法
2万
查看次数

Javascript魔术方法

在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');
Run Code Online (Sandbox Code Playgroud)

通常,您不会将某些内容传递给构造.

我经常遇到的其他一些包括:

__call()允许您更改调用方法的默认方式.一个很好的例子是覆盖,它允许您在使用任何以单词get开头的方法时获取属性值,或者在方法调用以单词set开始时设置属性值.

__get()用作类属性的重载,我不使用,但有人可能会感兴趣.

__set()用作类属性的重载,我不使用,但有人可能会感兴趣.

__destruct()我也不使用,只要没有对特定对象的其他引用,或在关闭序列期间以任何顺序调用.

问题

在javascript里面有这样的神奇方法吗?

有新的javascript程序员应该知道的任何隐藏的宝石,就像我上面描述的PHP吗?

javascript php

6
推荐指数
1
解决办法
3607
查看次数

标签 统计

javascript ×3

php ×2

firefox ×1

get ×1

getter ×1

properties ×1

undefined ×1