JavaScript对象(二)
Part One:对象的三个特性
原型(prototype) 类(class) 可扩展性(extensible attribute)
1,b.isPrototypeOf(o) //判断b是不是o的原型对象 与 instance of 的方法非常的类似,有区别
Object.prototype.isPrototypeOf(a) //true,表示a的原型链上面有Object的原型对象存在。
Object.getPropertyOf(b) //获取b的原型对象 ,相当于 b._proto_(但是不推荐使用此方法,因为尽管safari和chrome都支持了这一属性,但是IE和Opera暂时还没有支持,可能以后也不会支持)。
通过new一个构造函数来创建一个js对象o,那么o.consturctor指向o的构造函数,所以o.constructor.prototype亦指向了o的原型
2,class,对象的类属性是个字符串。
用于表示对象的类型信息。要想获取对象的类,需要调用原型上面的toString()方法,提取已返回字符串的8到-1的字符,但是很多对象的toString()方法重写了,
之前有个面试题,问如何判断一个对象数组类型,ES6提供了一种方法:Array.isArray(o) 来判断是不是数组对象,是返回true,不是返回false,
因为Array对象也是重写了原型上面的toString()方法,所以可以利用call方法,主要是将this指向了该数组,I am so ignorant!
方法三:o instanceof Array //true
3,可扩展性
对象的可扩展性指的是:能否为对象添加新的属性。所有的内置对象和自定义对象都是显示可扩展的,宿主对象的可扩展性是由JavaScript引擎定义的。
Object.isExtensible(o) //判断o是否可扩展
Object.preventExtensions(o) //将o的可扩展性设置为false,一旦将对象转化为不可扩展的,就无法再将其转化回可以扩展的了。这个属性只影响对象本身的可扩展性,不影响其原型上面的添加属性。
Object.seal(o) //该方法也可以将o设置为不可扩展性,还可以将o的所有自由属性设置为不可配置。也就是说o不能添加新属性,现有的属性也不能删除或者配置。
可扩展属性目的:将对象“锁定”,避免外界的干扰。
Object.freeze(o) //将更加严格的锁定对象-‘冻结’,除了不可扩展,属性不可配置,还将所有自身属性设置为只读。检测方法 Object.isFrozen(o),检测o是否被冻结。
JavaScript对象(二)的更多相关文章
- Unit05: JavaScript对象概述 、 常用内置对象一 、 常用内置对象二 、 常用内置对象三
Unit05: JavaScript对象概述 . 常用内置对象一 . 常用内置对象二 . 常用内置对象三 常用内置对象使用演示: <!DOCTYPE html> <html> ...
- javascript 对象简单介绍(二)
JavaScript Array(数组) 对象数组对象的作用是:使用单独的变量名来存储一系列的值. 什么是数组?数组对象是使用单独的变量名来存储一系列的值.如果你有一组数据(例如:车名字),存在单独变 ...
- 前端之JavaScript:JS之DOM对象二
继续JS之DOM对象二 前面在JS之DOM中我们知道了属性操作,下面我们来了解一下节点操作.很重要!! 一.节点操作 创建节点:var ele_a = document.createElement(' ...
- web前端学习(二) javascript对象和原型继承
目录 1. JavaScrpt对象 2. 原型对象和继承 3. 对象的克隆 (1)javascript对象 在JS中,对象是属性的容器.对于单个对象来说,都由属性名和属性值构成:其中属性名需要是标识符 ...
- Ext JS学习第十天 Ext基础之 扩展原生的javascript对象(二)
此文来记录学习笔记: 今天继续说Ext.Array,Ext.Function,Ext.Date,Ext.Error ------------------------------------------ ...
- javascript (十二)对象二
JavaScript 中的所有事物都是对象:字符串.数字.数组.日期,等等. 在 JavaScript 中,对象是拥有属性和方法的数据. 属性和方法 属性是与对象相关的值. 方法是能够在对象上执行的动 ...
- 学习javascript数据结构(二)——链表
前言 人生总是直向前行走,从不留下什么. 原文地址:学习javascript数据结构(二)--链表 博主博客地址:Damonare的个人博客 正文 链表简介 上一篇博客-学习javascript数据结 ...
- javaScript对象-基本包装类型的详解
本人按书上的内容大致地把javaScript对象划分成“引用类型”.“基本包装类型”和“内置对象”三块内容. 我们这篇先了解下基本包装类型的详细用法吧! 一.我们先解下相关概念: 1.引用类型的值(对 ...
- JavaScript 对象、DOM对象、jquery对象的区别、转换详解
一.JavaScript 对象 JavaScript 提供多个内建对象,比如 String.Date.Array 等等. 对象只是带有属性和方法的特殊数据类型. 访问对象的属性: [javascrip ...
随机推荐
- 吴裕雄 python 神经网络——TensorFlow 卷积神经网络水果图片识别
#-*- coding:utf- -*- import time import keras import skimage import numpy as np import tensorflow as ...
- Python连接SQLServer2000或连接mysql代码示例
1.Python连接SQLServer2000 # 获取连接 import pymssql db = pymssql.connect('127.0.0.1', 'sa', 'ddh123', &quo ...
- [LC] 252. Meeting Rooms
Given an array of meeting time intervals consisting of start and end times [[s1,e1],[s2,e2],...] (si ...
- RNA sequence单分子直测技术
生命组学 按照功能分类遗传物质,可能的分类有系统流.操作流.平衡流等等.下面是使用该理论解释DNA与RNA的关系: DNA和RNA有很大不同,DNA存储遗传信息,作为生命活动的最内核物质,如同操作系统 ...
- <JZOJ5941>乘
emmm还挺妙 不过我没想到qwq 考场上瞎写的还mle了心碎 把b分两..预处理下 O1询问qwq #include<cstdio> #include<iostream> # ...
- 用数组实现队列(C++)
#include <iostream> using namespace std; template<typename T, int size = 0> class Queue ...
- redis保存dataset
公司统一走redis缓存,也将之前的memcache迁移到redis碰到问题是redis的dataset缓存. memcache底层封装了dataset的序列化. 而redis引的DLL包,未支持.所 ...
- 省A类竞赛二等奖--村先游项目VUE前端重构
村先游--省二竞赛项目VUE重构 源码地址: 重构前的(前端+后台):https://github.com/Archer-Fang/cunxianyou 重构前的(前端):https://github ...
- axios学习笔记
axios学习笔记axios文档源地址:https://github.com/axios/axios0.概念axios 在NPM上的描述是:Promise based HTTP client for ...
- 在Oracle Spatial中增加Web Mercator投影坐标系
参考资料: 1. 最重要的参考文章,基本上就是按这个做的!!!:https://www.inf.unibz.it/dis/wiki/doku.php?id=students:minnerebner:o ...