博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Javascript创建对象代码

Posted on 2019-08-07 17:26  刻码人  阅读(367)  评论(0)    收藏  举报

1.普通函数与构造函数

(1)普通函数

普通函数仅仅具有某项功能,随时可直接执行。定义函数时,既不指定函数返回类型,也不指定参数类型,可以有返回值。

function getNum(n)
{
    if( n > 0 )
    console.log("over zero");
    else
    console.log("is small");
}

(2)构造函数

构造函数是原型对象,用来创建一个实例对象。构造函数首字母大写,可以在其中定义属性和函数,this表示对象本身

/* 一个简单的构造函数是原型对象,用来创建实例对象
* 1.用this表示对象本身
* 2.没有return语句
* 3.首字母必须大写
*/
function Point(x, y){
    this.x = x;
    this.y = y;
    this.d = function(){
        return Math.sqrt(this.x * this.x + this.y * this.y);
    }
}

var p1 = new Point(1, 1)
console.log( "p1.d() = " + p1.d());

原型对象可以通过prototype继续定义属性和方法

/*给原型再添加新属性
 * 1.用prototype来表示原型对象
 * 2.用户function表示增加的属性为函数
 * 3.用this对象本身
 */
Point.prototype.z = 0;
Point.prototype.r = function(){
    return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
}
p1.z = 1;
console.log("p1.z = " + p1.z);
console.log("p1.r() =" + p1.r());

 2.创建实例对象

(1)创建空的实例对象,再赋值

// 创建一个空对象,然后给他赋属性值和方法
var person = new Object()
person.name = "武汉";
person.mailcode = "430000";
person.print = function(){
    console.log(person.name + " " + person.mailcode)
};
person.print();

 (2)直接创建实例对象

/*
 * 采用JSON格式,直接创建一个对象
 * 1.可以定义属性
 * 2.可以定义方法
 */
var x = {
        name:"wuhan", 
        province:"hubei", 
        from:function()
        {
            return this.name+this.province
        }
};
console.log(x.from());

(3)由构造函数创建实例对象

var p1 = new Point(1, 1)
console.log( "p1.d() = " + p1.d());