小熊奶糖(BearCandy)
小熊奶糖(BearCandy)
发布于 2024-02-23 / 14 阅读
0
0

JavaScript Object2(对象2)及与PHP对象区别

JavaScript Object2(对象2)

对象中的属性的值为函数,这个属性叫方法

例如:

let result ={
                //创建方法
                showtotal: function price(product,price){
                console.log(`产品名称${product}`);
                console.log(`产品价格${price});
            },
            }

调用

result.price(product,price);

对象中属性的值可以为对象

列如:

let result ={
                productNum:0,
                //对象属性的值可以为对象,调用的办法result.product1.num;
                product1:{
                    num:0,
                    name:"海底捞",
                    price:100
                },
                product2:{
                    num:0,
                    name:"露露",
                    price:200
                },
}

调用

result.product1.num;

答案

<!DOCTYPE html>
<html>
    <head>
        <title>測驗</title>
        <style>
            button{
                font-size:25px;
                margin-right:10px;
            }
            p{
                font-size: 25px;
                display: inline-block;
                margin-right:10px;
            }
            img{
                height: 200px;
                display: block;
                margin-top:50px;
            }
        </style>
    </head>
    <body>
        <button onclick="
result.product1=0;
result.product2=0;
result.total=0;
result.productNum=0;
        ">清空購物車</button>

        <img src="product_images/product_image1.jpg">
        <p>$100</p>
        <button onclick="
       result.showtotal('product1',100);
        ">加入購物車</button>
        <img src="product_images/product_image2.jpg">
        <p>$200</p>
        <button onclick="
        //调用方法price直接这样调用即可 result.shownum 如果result.shownum.price的话是错误的
        result.shownum('product2');
        ">加入購物車</button>

        <script>
            let result ={
                productNum:0,
                //对象属性的值可以为对象,调用的办法result.product1.num;
                product1:{
                    num:0,
                    name:"海底捞",
                    price:100
                },
                product2:{
                    num:0,
                    name:"露露",
                    price:200
                },
                total:0,
                //创建方法(给对象属性的值为函数,我们叫他方法)
                shownum: function resultlog (product){
                    console.log(`${product}商品总数`);
                },
                //创建方法
                showtotal: function price(product,price){
                result.total+=price;
                console.log(`产品总数量${result.productNum}`);
                console.log(`产品总数量${result.total}`);
            },
            }

        </script>
    </body>
</html>

JavaScript对象和PHP对象在语法、创建方式、属性访问以及继承机制等方面存在显著区别:

JavaScript 对象

  1. 定义与创建:JavaScript 中的对象是动态的键值对集合,可以通过花括号 {} 创建字面量对象或使用 new 关键字结合构造函数来创建。

    // 字面量方式创建对象
    let jsObject = {
      property1: 'value1',
      property2: 'value2',
      method: function() { /*...*/ }
    };
    
    // 构造函数方式创建对象
    function JSClass() {
      this.property = 'value';
    }
    let jsObj = new JSClass();
    
    
  2. 属性访问

    • 属性可以动态添加和删除,通过点标记法或方括号标记法访问。
  3. 方法

    • 对象的方法就是作为属性存储在对象中的函数。
  4. 原型继承

    • JavaScript 使用原型链(prototype chain)实现对象之间的继承关系。
  5. JSON支持

    • JavaScript 对象可以直接转换为 JSON 格式,并通过 JSON.stringify()JSON.parse() 方法进行序列化和反序列化。

PHP 对象

1.定义与创建

  • 在 PHP 中,对象基于类定义,必须先定义类然后实例化。
class PHPClass {
    public $property;
  
    function __construct($value) {
        $this->property = $value;
    }
}

$phpObj = new PHPClass('value');

2.属性访问

  • 类中预定义的属性可通过 $this 关键字访问,同样支持动态属性的添加和删除。
$phpObj->property; // 访问属性
$phpObj->{'property2'} = 'value2'; // 动态添加属性

3.方法

  • PHP 类中的方法用于封装操作,也可以声明为静态方法。

4.类继承

  • PHP 使用 extends 关键字实现类之间的单继承,同时有接口 interface 和 traits trait 来扩展功能。

5.序列化与反序列化

  • PHP 有自己的序列化和反序列化函数,如 serialize()unserialize(),另外还有 JSON 相关函数 json_encode()json_decode() 来处理 JSON 格式的数据。

总结

JavaScript 对象更侧重于灵活性和动态性,而 PHP 对象则具有更严格的面向对象编程范式。JavaScript 的对象可以无须预先定义结构,而 PHP 对象需要通过类定义其结构和行为。两者在处理数据和实现功能时各有特点和适用场景。


评论