说说Javascript中Object的prototype属性对象里的常用属性

7个常用属性为:constructor、toString()、toLocaleString()、valueOf()、hasOwnProperty(参数)、propertyIsEnumerable(参数)和isPrototypeOf(参数)

constructor
constructor会默认指向对象的function

var Obj = function() {
	this.msg = "OK"
	this.send = function() {
		console.log(msg)
	}
}
var pro = {color : "red"}
// pro.constructor = Obj  //如果这条语句实现下面将会返回Obj对象
Obj.prototype = pro
var obj = new Obj()
console.log(obj.constructor)  //ƒ Object() { [native code] }

由于将Obj的prototype赋值为pro对象了,所以在调用constructor时没有返回Obj对象而是返回Object对象。我们就可以先将pro的constructor指向obj这样,在调用obj.constructor时就可以返回Obj对象了

toString()
toString将对象转化为字符类型

var array = [1, 2, 3]
var judge = true
var date = new Date()
console.log(typeof(array), array.toString())  //object 1,2,3
console.log(typeof(judge), judge.toString())  //boolean true
console.log(typeof(date), date.toString())  //object Sat Oct 06 2018 14:49:31 GMT+0800 (中国标准时间)

toLocaleString()
toLacleString使用本地化格式生成字符串,多用于时间日期和数字类型

console.log(date.toLocaleString())  //2018/10/6 下午2:40:05

vauleOf()
vauleOf返回原始值

console.log(date.valueOf())  //1538808005755

hasOwnProperty(参数)
hasOwnProperty判断对象是否包含指定属性(不包括穿件对象的function的prototype属性)

console.log(obj.hasOwnProperty("msg"))  //true
console.log(obj.hasOwnProperty("color"))  //false

第二条语句返回false是因为color存在于obj对象的prototype里面,它只能调用color但是却不是拥有,所以返回false

propertyIsEnumerable(参数)
propertyIsEnumerable判断某个属性是否可以枚举(只有该属性为对象的一部分并且可枚举才会返回true)

var array = [1, 2, 3]
console.log(array .propertyIsEnumerable(1))  //true
console.log(array.propertyIsEnumerable(4))  //false
console.log(array.propertyIsEnumerable("length"))  //false

isPrototypeOf(对象)
isPrototypeOf判断某个对象是否是另一个对象的prototype中的属性

console.log(pro.isPrototypeOf(obj))  //true
console.log(obj.isPrototypeOf(pro))  //false
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值