经典继承封装函数
o1.__proto__===O.prototype===o2
构造函数的实例的__proto__和构造函数的prototype是全等于的
function craeate(obj){
function F(){};
F.prototype=obj;
return new F();
}

ES5(IE9+)支持Object.create()固定方法
var o1={name:"男"};
var o2=Object.create?Object.create(o1):create(o1);能力检测

原型链:任何对象都是继承自原型对象,原型对象也有它自己的原型对象,总是有一个对象,是没有
__proto__属性的,这个对象,就是原型链的顶端
var o={};
console.log(o.__proto__);
var arr=[];
console.log(arr.__proto__.__proto__);
var f1=function(){};
console.log(f1.__proto__.__proto__);
var reg=/[0-3]/;
console.log(reg.__proto__.__proto__);

任何一个对象的prototype都定义了一个toString()
obj.toString()---->"[object Object]"
arr.toString()---->"1,2,3"
reg.toString()---->"/hello/"正则表达式的字符串类型
判断内置对象的时候,可以使用Object.prototype.toString.call(对象)
得到"[object 对象的数据类型]"
Object.prototype.toString.call(arr)
Object.prototype.toString.call(reg)
Object.prototype.toString.call(new Date())得到一个[object,数据类型]

判断一个对象是否拥有自己的属性hasOwnProperty,返回布尔类型
o.hasOwnProperty("属性")

判断当前对象是否是参数对象的原型对象isPrototypeOf
ar o1={};
Object.prototype.isPrototypeOf(o1)返回布尔值

判断当前对象的某个属性是否是可枚举的propertyIsEnumerable,所谓不可枚举的属性就是不能被
for(key in o)遍历
Object.defineProperty(obj,"gender",{value:"男"})给obj增加不可以枚举属性"gender"
value属性给gender设置了值,还有别的属性enumerable:false默认为false,为true时表示是可枚举
属性,
writable:true可写的对象,为true时才能被赋值运算,writable:false时不能赋值运算,默认为false
get:function(){return "男"}return的值就是属性设置的值,外面就不用写value了
set接受唯一参数,并将该参数的新值分配给属性gender
var _number;
var o2={};
Object.defineProperty(o2,"number",{
get:function(){//获取number属性值的时候就会执行这个函数
return _number || 0;
},
set:function(v){
if(v>50){
_number=v;
}
}
});
o2.number=35;//把35赋值给v

a instanceof b 检测a是否是b的实例,任何对象都是Object的实例
var apple=new Computer();
console.log(apple instanceof Computer);
console.log(apple instanceof Object);

var arr=[];
console.log(arr instanceof Array);//true
console.log(arr instanceof Object);//true

var reg=/word/;
console.log(reg instanceof RegExp);//true
console.log(reg instanceof Object);//true

所以检测一个数据的对象类型这里有两种方法,比如检测对象是不是数组
[] instanceof Array Object.prototype.toString.call([])==="[object Array]"

转载于:https://www.cnblogs.com/sw1990/p/5903557.html

原型链Object的一些方法相关推荐

  1. [js高手之路]原型对象(prototype)与原型链相关属性与方法详解

    一,instanceof: instanceof检测左侧的__proto__原型链上,是否存在右侧的prototype原型. 我在之前的两篇文章 [js高手之路]构造函数的基本特性与优缺点 [js高手 ...

  2. Javascript原型链

    这是关于原型链的一系列的现象与原理的解释以及例子 [转载请注明出处与地址] 分成4个部分阐述: 1.如何创建一个对象 2.使用原型链prototype实现对象的继承. 3.原型链上属性和方法的联系与规 ...

  3. 用ECMAScript4 ( ActionScript3) 实现Unity的热更新 -- 使用原型链和EventTrigger

    原型链是JS的必备,作为ECMAScript4,原型链也是支持的. 特别说明,ActionScript3是支持完整的面向对象继承支持的,原型链只在某些非常特殊的情况下使用. 本文旨在介绍如何使用原型链 ...

  4. 面向对象笔记2 原型链 解释

    面向对象2 ## js中已经写好的构造函数 * 内置对象 * js提供的已经定义好的对象 * Array,Date,RegExp,String,Number,Boolean * 同时js定义好了对应的 ...

  5. JS——构造函数、原型与实例之间的关系 及 原型链 的描述

    本文转载自:https://www.cnblogs.com/sarahwang/p/6870072.html https://blog.csdn.net/u012443286/article/deta ...

  6. js【Object.prototype.hasOwnProperty()方法】

    2019独角兽企业重金招聘Python工程师标准>>> 概述 hasOwnProperty() 方法用来判断某个对象是否含有指定的自身属性. 语法 obj.hasOwnPropert ...

  7. 真丶深入理解 JavaScript 原型和原型链(二):原型和原型链

    原文地址: https://www.jeremyjone.com/745/,转载请注明. 上一篇文章已经总结了关于原型的两个属性,那么接下来所有原型和原型链,乃至后面的继承,都与这两个属性有关系. 原 ...

  8. JS高级进阶总结day02---面向对象编程三大特征,原型链总结

    今日学习路线 1.了解面向对象的三大特征 封装 将某个具体功能封装在对象中,只对外部暴露指定的接口,外界在使用的时候,只考虑接口怎么用,不用考虑内部怎么实现 继承 一个对象拥有其他对象的属性和方法 多 ...

  9. JS进阶学习(作用域、函数进阶、解构赋值、原型链)

    文章目录 1.面相对象编程介绍 2.ES6中的类和对象 3.类的继承 ES6中的类和对象 三个注意点 作用域 局部作用域 全局作用域 作用域链 JS垃圾回收机制(GC) JS垃圾回收机制-算法说明 闭 ...

最新文章

  1. 选择适合页面或应用程序的数据查看机制
  2. DOT NET 三个名词
  3. 项目中遇到的几件有趣事
  4. 如何隐藏storyboard中的top bar
  5. UIView编程体验(一)
  6. fwrite,fread and fprintf,fscanf的一些使用体会
  7. uoni扫地机器人好用吗_扫地机器人好用吗?了解性能看这篇
  8. java scanner以回车结束_请问Scanner在输入回车后,如何才能退出?
  9. 《avascript 高级程序设计(第三版)》 ---第二章 在HTML中使用Javascript
  10. linux中byte数组长度,android – JNI:如何获得jbyteArray大小
  11. 家用智能门锁常见的开锁方式
  12. 2021年9月电子学会图形化四级编程题解析含答案:成语接龙
  13. Java图像识别技术:Test4J
  14. 安装CAD2006出现html,win7系统安装cad2006出现已终止CAD2006-Simplifieng安装的解决方法...
  15. cocos2dx实例开发之经典三消
  16. 我的win10平板维修,重刷系统的经验,windows pe5.0拯救我的平板
  17. 例说BPEL4WS(5)---伙伴与伙伴连接
  18. 【Android】DeepLink跳转简介
  19. 范德堡计算机科学硕士,范德堡大学计算机科学研究生怎么样?好不好
  20. 行为型模式之观察者模式

热门文章

  1. 【翻译】了解Ext JS 5的小部件
  2. 鼠标样式(cursor)
  3. KlayGE SVN原生支持立体显示
  4. Outlook addon CommandBarButton picture 的不透明效果解决方案
  5. [转] linux IO
  6. 程序员修炼之道:从小工到专家阅读笔记01
  7. koa+mysql+vue+socket.io全栈开发之web api篇
  8. 我的第一个网页制作:Hello World!
  9. 什么是 AIDL 以及如何使用
  10. 工作经验总结201606