JavaScript 面向对象编程继承【四】Object 对象的相关方法

本文深入探讨JavaScript中的面向对象编程,重点介绍Object对象的相关方法,包括getPrototypeOf()、setPrototypeOf()、create()、isPrototypeOf()、getOwnPropertyNames()、keys()、hasOwnProperty()、in运算符和for...in循环,以及对象的拷贝等,揭示JavaScript原型链的奥秘。
摘要由CSDN通过智能技术生成

JavaScript 是一门集成了函数编程和面向对象编程的动态语言。它的对象是一个容器,封装了属性(property)和方法(method)。JavaScript的面向对象实现不是基于类,而是基于构造函数(constructor)和原型链(prototype)实现的。

一.概述

  1. Object.getPrototypeOf()方法? 解答: 获取参数对象的原型对象。具体见: Object.getPrototypeOf()
  2. Object.setPrototypeOf()方法? 解答:设置参数对象的原型对象。具体见: Object.setPrototypeOf()
  3. Object.create()方法? 解答:以某个对象为原型对象创建一个新对象。具体见: Object.create()
  4. Object.prototype.isPrototypeOf()方法? 解答: 实例对象的isPrototypeOf方法,用来判断该对象是否为参数对象的原型。具体见: Object.prototype.isPrototypeOf()
  5. Object.getOwnPropertyNames()和Object.keys()方法的区别? 解答:①:Object.getOwnPropertyNames方法返回一个数组,成员是参数对象本身的所有属性的键名,不包含继承的属性键名。②:Object.keys()只获取那些可以遍历的属性。具体见: Object.getOwnPropertyNames()和Object.keys()
  6. hasOwnProperty()方法? 解答:用于判断某个属性定义在对象自身,还是定义在原型链上。具体见: hasOwnProperty()
  7. in 运算符和 for…in 循环方法? 解答:in查询一个对象是否具有某个属性。包括自身的属性和继承属性。 for…in 遍历对象所有可遍历属性。具体见: in 运算符和 for…in 循环

二.Object.getPrototypeOf()

1.释义

  • Object.getPrototypeOf方法返回参数对象的原型。这是获取原型对象的标准方法。

    //实例对象f的原型是F.prototype
    var F = function () {
         };
    var f = new F();
    Object.getPrototypeOf(f) === F.prototype // true
    

2.特殊原型对象

  • 下面是几种特殊对象的原型。

    // 空对象的原型是 Object.prototype
    Object.getPrototypeOf({
         }) === Object.prototype // true
    
    // Object.prototype 的原型是 null
    Object.getPrototypeOf(Object.prototype) === null // true
    
    // 函数的原型是 Function.prototype
    function f() {
         }
    Object.getPrototypeOf(f) === Function.prototype // true
    

三.Object.setPrototypeOf()

1.释义

  • Object.setPrototypeOf方法为参数对象设置原型,返回该参数对象。它接受两个参数,第一个是现有对象,第二个是原型对象。

    //Object.setPrototypeOf方法将对象a的原型,设置为对象b,因此a可以共享b的属性
    var a = {
         };
    var b = {
         x: 1};
    Object.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值