23-JavaScript-面向对象-Object类-扩展原型对象-成员函数

时间:2021-02-24 14:38:57
Object类
扩展原型对象
成员函数

1. Object类


    Object类是所有JavaScript类的基类,
    它提供了一种创建自定义对象的简单方式,
    而不需要再自定义构造函数.

 1) 主要属性


    ① constructor

        对象的构造器

    ② prototype

        获得类的prototype对象

 2) 主要方法


    ① hasOwnProperty( property )

        是否属于本类定义的属性

    ② isPrototypeOf( object )

        是否指定类的prototype

    ③ propertyIsEnumerable( property )

        是否是可枚举的属性

    ④ toString()

        返回对象对应的字符串

    ⑤ valueOf()

        返回对象对应的原始类型值

 3) 创建一个对象        

    var obj = new Object();

obj.name = "张三";

obj.gender = "男";

obj.show = function() {
return this.name + " " + this.gender;
}

console.info( obj.show() );


2. 扩展 原型对象


 1) 扩展 Number

    Number.prototype.add = function( num ) {
return this + num;
}

var x = 10;
// <==> var x = new Number(10);


console.info( x.add(1).add(2) ); // 13

 2) 扩展 Array

    Array.prototype.find = function(val) {
for (var i = 0; i < this.length; i++) {
if (val == this[i]) {
return i;
}
}
return -1;
}

var arr = [5,9];
// <==>
// var arr = new Array();
// arr[0] = 5;
// arr[1] = 9;

console.info( arr.find(9) );
console.info( arr.find(19) );

3. 成员函数


 1) 参数列表可变


    - 类型
    - 个数

 2) 返回语句可省, 但最多返回一个值


 3) 同名函数, 只调用最后一个

    function func(v1) {
return "11111111";
}

function func(v1, v2) {
return "22222222";
}

console.info( func(1) ); // 22222222


 4) 全局函数


    不在类中定义的函数, 即为 全局函数;

    同理, 也有 全局变量.