function protoTest() {
function User(name, age, skill, msg) {
this.name = name;
this.age = age;
this.skill = skill
this.speak = function () {
console.log(msg)
}
}
var nahida = new User('Nahida', 500, {e: '手牵手', q: '此即,智慧之殿堂'}, '小心头顶上长出蘑菇哦')
console.log('对象的原型指向构造函数的prototype', nahida.__proto__ === User.prototype)
console.log('对象方法的隐式原型指向Function的prototype', nahida.speak.__proto__ === Function.prototype)
console.log('对象属性的原型指向属性类型的构造函数的prototype', nahida.name.__proto__ === String.prototype)
console.log('对象属性的原型指向属性类型的构造函数的prototype', nahida.age.__proto__ === Number.prototype)
console.log('对象属性的原型指向属性类型的构造函数的prototype', nahida.skill.__proto__ === Object.prototype)
console.log('')
console.log('函数的隐式原型指向Function的prototype', User.__proto__ === Function.prototype)
console.log('函数的显式原型是独立的对象', User.prototype === Function.prototype)
console.log('函数的显式原型的原型指向Object的prototype', User.prototype.__proto__ === Object.prototype)
console.log('')
console.log('Function的隐式原型指向Function的prototype', Function.__proto__ === Function.prototype)
console.log('Function的显式原型的隐式原型指向Object的prototype', Function.prototype.__proto__ === Object.prototype)
console.log('')
console.log('Object的隐式原型指向Function的prototype', Object.__proto__ === Function.prototype)
console.log('Object的显式原型的隐式原型为null', Object.prototype.__proto__ === null)
}