Object原型方法

Object

Object 构造函数用来包装成对象.

概述

Object 构造函数为给定值创建一个对象包装器. 如果给定值是 nullundefined, 将会创建并返回一个空对象. 否则, 将返回一个与给定值对应类型的对象.

当以非构造函数形式被调用时, Object 等同于 new Object().

原型方法

Object.prototype.hasOwnProperty()

描述 : 判断自身属性中是否有指定的属性.
语法 :

target.prototype.hasOwnProperty(prop)

target : 目标对象.
prop : 要检测的属性.

1
2
3
4
5
6
7
8
9
10
11
12
function Person(name) {
this.name = name
}
Person.prototype.age = 18

let person = new Person('yexiaochen')
let boolean_1 = person.hasOwnProperty('name')
let boolean_2 = person.hasOwnProperty('age')
// > boolean_1
// true
// > boolean_2
// false

Object.prototype.isPrototypeOf()

描述 : 判断一个对象是否在另一个对象的原型链上.
语法 :

prototypeObject.isPrototypeOf(obj)

obj : 提供原型链的对象.
prototypeObject : 待检测的对象.

1
2
3
4
5
6
7
8
9
10
11
12
function Person() {}
function Man(){}
Man.prototype = Object.create(Person.prototype)

let man = new Man()

let boolean_1 = Person.prototype.isPrototypeOf(man)
let boolean_2 = Man.prototype.isPrototypeOf(man)
// > boolean_1
// true
// > boolean_2
// true

Object.prototype.propertyIsEnumerable()

描述 : 判断对象的指定属性是否可枚举. 原型链上继承来的属性除外. 如果对象没有指定的属性,则此方法返回false
语法 :

target.propertyIsEnumerable(prop)

target : 目标对象.
sources : 待检测的属性.

1
2
3
4
5
6
7
8
9
10
11
12
function Person(name) {
this.name = name
}
Person.prototype.age = 18

let person = new Person('yexiaochen')
let boolean_1 = person.propertyIsEnumerable('name')
let boolean_2 = person.propertyIsEnumerable('age')
// > boolean_1
// true
// > boolean_2
// false

Object.prototype.toString()

描述 : 一个表示该对象的字符串
语法 :

target.toString()

target : 目标对象.

1
2
3
4
5
6
7
8
9
10
11
function Person() {}
let person = new Person()
let str_1 = person.toString();
let str_2 = Object.prototype.toString.call(person)
let str_3 = Object.prototype.toString.call(Person)
// > str_1
// '[object Object]'
// > str_2
// '[object Object]'
// > str_3
// '[object Function]'

Object.prototype.valueOf()

描述 : 对象转换为原始值. 如果对象没有原始值, 返回对象本身.
语法 :

target.valueOf()

target : 目标对象.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
let str = new String('hello world')
let num = new Number(0)
let boolean = new Boolean(true)
let arr = [1,2,3]
let func = function a(){}
let obj = {a: 'hello'}
str.valueOf()
num.valueOf()
boolean.valueOf()
arr.valueOf()
func.valueOf()
obj.valueOf()
// > str.valueOf()
// 'hello world'
// > num.valueOf()
// 0
// > boolean.valueOf()
// true
// > arr.valueOf()
// [ 1, 2, 3 ]
// > func.valueOf()
// [Function: a]
// > obj.valueOf()
// { a: 'hello' }
------------- The End -------------
显示评论