Object的方法

博客围绕面向对象展开,探讨了显示声明与隐式声明变量的区别,属于信息技术中程序设计相关内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
面向对象

    function Cat(n, c) {
        this.name = n;
        this.color = c;
        this.trait = function () {
            alert('卖萌~');
        };

    };

    Cat.prototype.skill = function () {
        alert('抓老鼠');
    };

    Cat.prototype.abc = 123;

    function Dog(f,n, c) {//子类
        this.food = f;
        Cat.call(this,n,c);

    };

    // Dog.prototype = Object.create(Cat.prototype); ??

    var dog1 = new Dog('aa','bb','cc');
    console.log(dog1.name); //结果:  bb
    dog1.trait(); // 结果: 卖萌

    //面向委托

      var  Cat = {
          init: function (n,c){
              this.name = n;
              this.color= c;
          },
          train: function(){
              alert('卖萌~');
          },
          skill: function(){
              alert('抓老鼠');
          }

      }

      var Dog = Object .create(Cat);
        Dog.setArr = function (f,n,c){
            this.init(n,c)
            this.food= f;
        };


      var dog1 = Object.create(Dog);
      dog1.setArr('aa','bb','cc');
      console.log(dog1.name);

      dog1.skill();


    var obj1 = {a:1, b:2};
    var obj2 = {
        name:'xm',
        age:18,
        say: function(){
            alert('xxxx');
        }
    }

      obj1.c = 3; //设置属性  -> set()
      obj1.a = 4;//修改属性   ->set()
     console.log(obj1.b); //访问属性  -> get()

     Object.defineProperty(obj1,'a',{
         // 是否可配置(删除,枚举,读写);
         configurable:true,
         //是否可枚举(for in  遍历)
         enumerable: true,
         //是否可写
         writable: true,
         //属性值
         value: 5
     });
     console.log(obj1.a) // 结果:  5

     delete obj1.a;

    for(var key in obj1){
        console.log(key);
    }

显示声明与隐式声明变量的区别?
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

资源下载链接为: https://pan.quark.cn/s/9648a1f24758 今天想和大家分享一下 Linux 操作系统中的防火墙相关知识。防火墙在 Linux 系统里扮演着极为关键的角色,它就像是系统安全的“守门人”。通过合理配置防火墙,可以有效控制网络流量的进出,阻止恶意攻击,保护系统内部的重要数据和资源不受侵害。 在 Linux 系统中,常见的防火墙工具有 iptables 等。iptables 是一个功能强大的防火墙工具,它通过定义一系列规则来对网络数据包进行过滤、转发、修改等操作。这些规则可以根据数据包的源地址、目的地址、协议类型、端口号等多种因素来制定,从而实现灵活的网络流量控制。 例如,我们可以使用 iptables 设置规则,只允许特定的 IP 地址访问系统的某些服务端口,如 SSH 端口,这样可以防止未经授权的用户通过暴力破解等方式登录系统。同时,也可以设置规则阻止系统对外部某些恶意网站或 IP 的访问,避免系统受到网络钓鱼等攻击。 除了 iptables,还有其他一些防火墙工具可供选择,如 firewalld。firewalld 是一个动态管理防火墙的工具,它提供了更易于管理的接口和更灵活的配置方式。它可以方便地定义不同的防火墙区域,每个区域可以设置不同的安全策略,从而更好地适应复杂的网络环境。 学习 Linux 防火墙不仅可以提升系统的安全性,还可以帮助我们更好地理解网络通信的原理和机制。希望大家都能重视起 Linux 防火墙的学习和应用,让我们的 Linux 系统在网络安全的环境下稳定运行。
### JavaScript 中 Object 对象的方法列表 在 JavaScript 中,`Object` 是一个基础的对象构造函数,提供了许多用于操作对象的静态方法。以下是 `Object` 的常用方法及其功能描述: #### 静态方法 1. **Object.assign(target, ...sources)** 用于将多个源对象的属性复制到目标对象上[^1]。 2. **Object.create(proto[, propertiesObject])** 创建一个新的对象,并指定其原型和可选的属性对象。 3. **Object.defineProperty(obj, prop, descriptor)** 定义或修改对象的一个已有属性,或者添加新属性并返回此对象[^2]。 4. **Object.defineProperties(obj, props)** 使用定义器一次设置多个属性。 5. **Object.entries(obj)** 返回给定对象自身的键值对数组。 6. **Object.freeze(obj)** 冻结一个对象,使其不可被更改。 7. **Object.getOwnPropertyDescriptor(obj, prop)** 获取特定属性的特性描述符。 8. **Object.getOwnPropertyDescriptors(obj)** 获取所有自有属性的特性描述符集合。 9. **Object.getOwnPropertyNames(obj)** 返回由对象自身枚举属性组成的数组,包括不可枚举属性。 10. **Object.keys(obj)** 返回由对象自身可枚举属性名组成的数组。 11. **Object.values(obj)** 返回对象自身的值数组。 12. **Object.getPrototypeOf(obj)** 返回指定对象的原型(内部 [[Prototype]] 属性)。 13. **Object.setPrototypeOf(obj, prototype)** 设置对象的原型为指定值。 14. **Object.is(value1, value2)** 判断两个值是否严格相等,类似于 `===` 运算符,但更精确。 15. **Object.seal(obj)** 密封一个对象,防止新增或删除属性,但仍允许修改现有属性的值。 #### 实例方法 除了上述静态方法外,`Object.prototype` 提供了一些实例方法,这些方法可以通过任何对象调用: 1. **obj.hasOwnProperty(prop)** 检查对象是否有某个自己的属性(而非继承自原型链上的属性)。 2. **obj.propertyIsEnumerable(prop)** 判断某属性是否可以被 `for...in` 循环列举出来。 3. **obj.toLocaleString([reservations])** 调用对象的本地化字符串表示形式。 4. **obj.toString()** 返回对象的字符串表示形式,默认情况下会显示 `[object Object]`。 5. **obj.valueOf()** 返回对象本身的原始值。 --- ### 示例代码展示部分方法的应用场景 以下是一些常见方法的实际应用案例: ```javascript // Object.assign 示例 const target = { a: 1 }; const source = { b: 2 }; Object.assign(target, source); // 结果:{ a: 1, b: 2 } // Object.keys 和 Object.values 示例 const obj = { name: "Alice", age: 25 }; console.log(Object.keys(obj)); // ["name", "age"] console.log(Object.values(obj)); // ["Alice", 25] // Object.freeze 示例 const frozenObj = { key: "value" }; Object.freeze(frozenObj); frozenObj.key = "newValue"; // 不会产生错误,但不会生效 console.log(frozenObj.key); // 输出仍是 "value" ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值