1.Object.getOwnPropertyNames()方法返回一个由指定对象的所有自身属性的属性名(包括不可枚举属性但不包括Symbol值作为名称的属性)组成的数组. Object.getOwnPropertyNames(obj) 参数obj是一个对象,其自身的可枚举和不可枚举属性的名称被返回. 返回值是:在给定对象上找到的自身属性对应的字符串数组. 实例: var arr = ["a", "b", "c"]; console.log(Ob…
let triangle={ a:1, b:2, c:3 } function coloTriangle(){ this.color='red'; } coloTriangle.prototype=triangle; let color=new coloTriangle(); Object.defineProperty(color,'auto',{ value:'auto' }) let symbolProp=Symbol('symbol'); color[symbolProp]='symbol…
一.基本用法简介 声明一个简单的对象,如下 var obj = { name: 'ldld' } 我们可以用Object.defineProperty来声明这个对象 var obj = {} Object.defineProperty(obj,'name',{ value:'ldld', writable:true, enumerable: true, configurable: true }) 下列就这四个基本的配置简单介绍一下 value:初始值 writable:是否可以修改该属性的值 v…
ECMAScript将对象的属性分为两种:数据属性和访问器属性.每一种属性内部都有一些特性,这里我们只关注对象属性的[[Enumerable]]特征,它表示是否通过 for-in 循环返回属性,也可以理解为:是否可枚举. 然后根据具体的上下文环境的不同,我们又可以将属性分为:原型属性和实例属性.原型属性是定义在对象的原型(prototype)中的属性,而实例属性一方面来自己构造函数中,然后就是构造函数实例化后添加的新属性. 本文主要介绍JavaScript中获取对象属性常用到的三种方法的区别和适…
for..in循环 使用for..in循环时,返回的是所有能够通过对象访问的.可枚举的属性,既包括存在于实例中的属性,也包括存在于原型中的实例.这里需要注意的是使用for-in返回的属性因各个浏览器厂商遵循的标准不一致导致对象属性遍历的顺序有可能不是当初构建时的顺序. 虽然for..in主要用于遍历对象的属性,但同样也可以用来遍历数组元素. var arr = ['a', 'b', 'c', 'd']; // 使用for..in for (var i in arr) { console.log(…
var parent = Object.create(Object.prototype, { a: { value: 1, writable: true, enumerable: true, configurable: true } }); parent继承自Object.prototype,有一个可枚举的属性a.下面我们在创建一个继承自parent的对象child. var child = Object.create(parent, { b: { value: 2, writable: tru…
返回对象自己(非原型继承的属性)的属性名称,包括函数. 方法: Object.getOwnPropertyNames(object); Object.keys(object); 参数: object,如果不是object类型,则引发TypeError异常. 例子: 'use strict'; (function(){ if(!Object.getOwnPropertyNames){ console.log('浏览器不支持getOwnPropertyNames'); return; } //人类的…
用途 Object.keys 定义:返回一个对象可枚举属性的字符串数组: Object.getOwnPropertyNames 定义:返回一个对象可枚举.不可枚举属性的名称: 属性的可枚举性.不可枚举性 定义:可枚举属性是指那些内部 “可枚举” 标志设置为 true 的属性,对于通过直接的赋值和属性初始化的属性,该标识值默认为即为 true,对于通过 Object.defineProperty 等定义的属性,该标识值默认为 false. 例子 var obj = { "prop1":…
Object.prototype.hasOwnProperty() 所有继承了 Object 的对象都会继承到 hasOwnProperty 方法.这个方法可以用来检测一个对象是否含有特定的自身属性:和 in 运算符不同,该方法会忽略掉那些从原型链上继承到的属性. 使用 hasOwnProperty 方法判断属自身属性与继承属性 function Demo(name){ this.name=name||'Tom';//自身属性 } Demo.prototype.age='10';var demo…
一.获取对象属性和方法 Object.keys()for in 返回对象的可枚举属性和方法的名称数组. Object.getOwnPropertyNames() 返回的数组的所有属性(可枚举或不可枚举)直接找到给定对象. 1 // 创建一个对象的构造方法 2 function myObj(name, attr) { 3 this.name = name; 4 this.attr = attr; 5 6 this.sayHi = function () { 7 return 'hi everyon…