构造属性: 在构造函数被创建的时候,在它的原型prototype上有一个contructor属性,是原型对象所独有的。
这是其他对象实例所没有的。

  1. function Person(name,age){
  2. this.name = name;
  3. this.age = age;
  4. }
  5. Person.prototype.sayName = function(){
  6. console.log(this.name)
  7. }
  8. var p = new Person("cheng",17)
  9. console.log(p.constructor == Person)

1-1 以直接量(对象)的方式定义原型

改变了构造函数的属性

  1. function Person(name, age) {
  2. this.name = name;
  3. this.age = age;
  4. }
  5. Person.prototype = {
  6. sayName: function () {
  7. console.log(this.name)
  8. }
  9. }
  10. var p = new Person("cheng", 17)
  11. console.log(p.constructor==Object)

改正构造属性

  1. function Person(name, age) {
  2. this.name = name;
  3. this.age = age;
  4. }
  5. Person.prototype = {
  6. constructor:Person,
  7. sayName: function () {
  8. console.log(this.name)
  9. }
  10. }
  11. var p = new Person("cheng", 17)
  12. console.log(p.constructor==Object)

1-2 私有和共有属性

  1. console.log(p.hasOwnProperty("name")) //true
  2. console.log(p.hasOwnProperty("sayName")) //false