demo.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
//1.constructor
//原型对象内的一个属性,指向该原型对象相关联的构造函数
//2.hasOwnProperty
//一个方法,用来判断对象本身(不包含原型)是否拥有某个属性
// function Person(){
this.name = "王九"
// }
//
// Person.prototype.name = "张三";
//
// var p = new Person();
// console.log(p.name); // "王九"
// console.log(p.hasOwnProperty("name")); // true __proto__:false
//3.propertyIsEnumerable
// 1. 属性是否属于对象本身(非原型所有)
// 2. 属性是否可以被遍历(1和2必须同时成立)
// console.log(p.propertyIsEnumerable("name")); // true
// Object.defineProperty();
// 使用以上方法添加属性的时候,可以附加一些信息,
// 例如这个属性是否可写 可读 可遍历
//4. toString 和 toLocaleString
// var o = {};
console.log(o.toString());
console.log(o.toLocaleString());
//
// var now = new Date();
// console.log(now.toString()); // Mon Apr 02 2018 21:10:55 GMT+0800 (中国标准时间)
// console.log(now.toLocaleString()); // 2018/4/2 下午9:10:55
//5.valueOf
//获取当前对象的值
function Person(){
}
var p = new Person();
//在对象参与运算的时候
//1.默认的会先去调用对象的valueOf方法,
//2.如果valueOf获取到的值,无法进行运算 ,就去去调用p的toString方法 最终做的就是字符串拼接的工作
console.log( 1 + p); // "1[object Object]"
//6. __proto__
//原型对象中的属性
//可以使用 对象.__proto__ 去访问原型对象
//7.isPrototypeOf()
// 对象1.isPrototypeOf(对象2) //判断对象1是不是对象2的原型
</script>
</head>
<body>
</body>
</html>