美文网首页
面向对象(七)相关属性方法补充

面向对象(七)相关属性方法补充

作者: 凸小布 | 来源:发表于2017-02-24 22:29 被阅读5次

构造器

  • 属性:constructor
  • 值:与之关联的构造函数
  • 注意点:constructor是在原型对象身上的,
    我们通过 对象.constructor 访问得到的值其实就是原型对象中对应的值
构造器构造器

--proto--

如果是使用构造函数创建对象,那么在创建的对象中,有一个--proto--指针指向其构造函数对应的原型对象
访问原型对象的方法
(1)构造函数.prototype
(2)对象.--proto--
注意点:
在正式的开发中,在正式的代码中不要使用该属性
因为这个属性不是ECMA标准里的,它是部分浏览器厂商为了方便程序员开发和调试而提供的一个属性,是非标准的。

<script>
    function Person(){}
    Person.prototype.des = "des";
    var p1 = new Person();

    console.log(Person.prototype == p1.__proto__);  //true
</script>

hasOwnProperty

  • in 关键字
    001 检查对象中是否有指定的属性(实例属性 + 原型属性)
    002 遍历对象
    语法:“属性” in 对象
  • hasOwnProperty
    作用:检查对象中是否存在指定的属性(实例属性)
    语法:对象.hasOwnProperty("属性")
  • 需求:
    要求判断某个属性是否是原型属性,而且仅仅只是原型属性
    01 该属性存在
    02 该属性不是实例属性
<script>
    Object.prototype.des = "des";
    Object.prototype.age = "des";
    var obj = {name:"zs",age:20};


    console.log("name" in obj);
    console.log(obj.hasOwnProperty("name"));
    console.log(obj.des);


    //in 和 hasOwnProperty
    console.log("des" in obj);              //true
    console.log(obj.hasOwnProperty("des")); //false

    function isOnlyPrototypeProperty(propertyName,obj)
    {
        return (propertyName in obj) && !obj.hasOwnProperty(propertyName);
    }

    //验证
    console.log(isOnlyPrototypeProperty("name", obj));
    console.log(isOnlyPrototypeProperty("des", obj));
    console.log(isOnlyPrototypeProperty("age", obj));  //false
</script>

isPrototypeOf

isPrototypeOf 判断是否是原型对象的
instanceof 判断某个对象是否是指定构造函数的实例对象

<script>
    function Person(){};
    var demo = {};
    var demo1 = {};
    Person.prototype = demo;
    Person.prototype.constructor = Person;

    var p1 = new Person();

    //判断某个对象是否是指定对象的原型对象
    console.log(demo1.isPrototypeOf(p1));

</script>

相关文章

  • 面向对象(七)相关属性方法补充

    构造器 属性:constructor 值:与之关联的构造函数 注意点:constructor是在原型对象身上的,我...

  • Python学习-面向对象

    查看所有Python相关学习笔记 面向对象 面向对象知识点汇总: 面向对象静态属性实例属性(self)静态方法(@...

  • Python学习笔记5

    面向对象 类和对象的创建 属相相关 方法相关 元类 内置的特殊属性 内置的特殊方法 面向对象 类和对象的创建 类 ...

  • 2018-11-23 面向对象4 ES6

    面向对象补充: JavaScript 通过构造函数生成新对象,因此构造函数可以视为对象的模板。实例对象的属性和方法...

  • 面向对象

    面向对象方法概论 对象、结构 概念呢 特征 1.1 什么是面向对象 面向对象方法的基本思想 对象 属性-静态特征 ...

  • Python3 & 类的继承

    Python 是一门面向对象的语言。以下简单介绍面向对象相关概念:类:描述具有相同属性和方法的集合。简单来说就是一...

  • python 10天快速教程 Day7

    本节重点 面向对象介绍 简单类与对象 魔法方法 继承、super 私有属性与私有方法 一、面向对象介绍 面向过程:...

  • javaScript高级程序设计读书笔记(六)

    面向对象的程序设计,面向对象的语言有类的概念,通过类创造多个具有相同的属性和方法的对象。 对象 属性类型 数据属性...

  • 面向对象_初识

    目录 面向对象编程介绍 类与对象介绍 私有属性与私有方法 面向对象编程 1. 面向对象编程介绍 面向对象编程:Ob...

  • OC类结构分析

    OC是一门面向对象语言,面向对象离不开对象,类,继承,类方法,实例方法,属性,实例变量,对于习惯了面向对象的同学来...

网友评论

      本文标题:面向对象(七)相关属性方法补充

      本文链接:https://www.haomeiwen.com/subject/hcxgwttx.html