美文网首页
解剖JS原型对象,让世界没有混淆的对象😂

解剖JS原型对象,让世界没有混淆的对象😂

作者: 五锅锅 | 来源:发表于2017-02-20 00:14 被阅读36次

前言:记录对对象属性的再次学习,对象属性很多概念性都比较容易让人混淆(至少我是经常的混淆... 大笑ing - )

1. hasOwnProperty和in属性

hasOwnProperty的作用:检查对象中是否存在指定的实例属性,重点是实例而非原型属性。hasOwnProperty个人直译:拥有自己的属性...方便好记😝

语法:对象.hasOwnProperty(“属性名”)

代码示例

<script>

    //01 提供一个构造函数
    function User(name) {
        this.name = name;
    }

    //02 设置构造函数的原型对象的属性
    User.prototype.todo = function () {
        console.log("to do some...");
    }

    User.prototype.des = "默认的描述信息";

    //03 创建对象
    var user = new User();

    //04 使用hasOwnProperty方法判断该属性是否是对象的实例属性
    console.log(user.hasOwnProperty("age"));       //false
    console.log(user.hasOwnProperty("name"));      //true
    console.log(user.hasOwnProperty("todo"));  //false
    console.log(user.hasOwnProperty("des"));       //false

</script>

in关键字作用:用来检查对象中是否存在某个属性(不区分实例属性和原型属性)...😌如果是用在for循环上的in就不是这个意思了

语法:“属性名” in 对象

代码示例

<script>

    //01 提供一个构造函数
    function User(name) {
        this.name = name;
    }

    //02 设置构造函数的原型对象的属性
    User.prototype.todo = function () {
        console.log("to do some...");
    }

    //03 创建对象
    var user = new User();

    //04 使用in关键字判断对象中是否存在以下属性:name age todo
    console.log("age" in user);       //false
    console.log("name" in user);      //true
    console.log("todo" in user);  //true

</script>

那么我们如何判断对象中只存在原型属性呢?

function isProperty(obj, property) {
   return !obj.hasOwnProperty(property) && (property in obj); 
}

  • 如果想知道user是属于某个构造函数时直接user.constructor查看

  • 如果想要判断user这个对象是不是User构造函数的实例时用instanceof检查

 console.log(user instanceof User);      //true
 console.log(user instanceof Object);      //true
 //instanceof 直接查到整条原型链
  • 如果还要判断User是不是user的原型对象时,可以用isPrototypeOf
console.log(User.prototype.isPrototypeOf(user));    //rue


总结:会很容易懵逼... 前方的道路还是很多雾霾...且行且懵逼...

---查看原文--来自漂亮妹纸写的文章

相关文章

  • 解剖JS原型对象,让世界没有混淆的对象😂

    前言:记录对对象属性的再次学习,对象属性很多概念性都比较容易让人混淆(至少我是经常的混淆... 大笑ing -...

  • js基础(三)

    js基础 原型链和原型对象 ... ... js没有继承原型对象prototype通常用来添加公共的属性或行为且只...

  • 廖雪峰JS小记

    (function(){})() 原型,原型链 浅谈Js原型的理解JS 原型与原型链终极详解 对象 对象:一种无序...

  • Js面向对象

    一、Js面向对象 二、Js原型及原型链 1、原型 JavaScript 的每个对象都继承另一个父级对象,父级对象称...

  • 原型和原型链的简单理解

    原型 在JS中原型就是prototype对象,用来表示类型之间的关系。 原型链 JS中对象和对象之间是有联系的,通...

  • 2022前端高频面试题

    JS相关 1.原型和原型链是什么 原型和原型链都是来源于对象而服务于对象的概念js中引用类型都是对象,对象就是属性...

  • Prototype(原型对象)学习

    一、Prototype(原型对象) js中的每一个对象,都有一个原型对象;Data对象有一个原型对象Data.pr...

  • 原型及原型链

    什么是原型 js中的原型指的是一个对象可以从另一个对象继承特性。每个对象都有一个原型对象,对象以其原型对象为模板,...

  • web2

    js是面向对象的语言 是因为js的高度动态性的对象系统 面对对象变成:基于类 和 基于原型 js属于基于原型 性能...

  • 1.web前端基础储备之—js的面向对象风格以及原型和原型链

    javascript是面向对象风格,基于原型的语言。 目标:了解js面向对象和原型原型链的关系 面向对象(OOP)...

网友评论

      本文标题:解剖JS原型对象,让世界没有混淆的对象😂

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