原型、原型链、继承、

在 JS 中,一切皆对象! 下面就让我们从创建对象开始,逐步学习JS中的核心知识: 原型,原型链,继承等

创建对象

// 1. 字面量方式创建对象 : var obj = {} ;
var obj1 = {
    name : "张三",
    age:13,
    sayHello : function () {
        alert("hello")
    }
};

// ---------------------------------------
// 2. 使用 new Object () 的方式创建对象
var obj2 = new Object();
obj2.name = "张三";
obj2.age = 13;
obj2.sayHello = function () {
    alert("Hello")
}

// ---------------------------------------
// 3. 使用 function 构造函数创建对象
function Person() {
    this.name = "张三";
    this.age = 13 ;
    this.sayHello = function () {
        alert("Hello")
    }
}

var obj3 = new Person();
obj3.sayHello();

// ---------------------------------------
// 4. 使用 Object.create() 创建对象
var obj4 = Object.create(Object.prototype,{
    name:{
        value: "张三"
    },
    age:{
        value:13
    },
    sayHello: {
        value: function () {
            alert("Hello");
        }
    }
});
obj4.sayHello ();

Object 对象 和 Function 对象

//   接着上面的代码写
console.log(typeof obj1);    // object 
console.log(typeof obj2);    // object
console.log(typeof obj3);    // object
console.log(typeof obj4);    // object
console.log(typeof Person);  // 输出 function

在 JS 中最常见的对象类型就是 Object 和 Function 。Object 是通过 new Object () 方式(或者其变种) 创建的, 而 Function 对象 是通过 new Function() 方式创建的。 function (){} 定义的函数是隐式的 new Function()。

构造函数

构造函数可以说是一个普通的函数。 通过构造函数可以创建对象 ,任何函数都可以被看做 构造函数

function Person(name, age, job) {
 this.name = name;
 this.age = age;
 this.job = job;
 this.sayName = function() { alert(this.name) } 
}
var person1 = new Person('Zaxlct', 28, 'Software Engineer');
var person2 = new Person('Mick', 23, 'Doctor');

函数对象的原型对象

每个函数对象都会被分配一个属性 "prototype",通过这个属性可以得到 函数对象的原型对象。

posted @ 2018-04-25 16:42  malongs.com  阅读(163)  评论(0编辑  收藏  举报