javaScript-面向对象学习day3笔记

js高级——面向对象day3

1.继承的3种实现方式

所谓继承,就是对象自己没有的成员,调用别的对象的

  • 混入式继承

    通过for in 方法循环遍历父对象的属性,并添加到子对象中

  • 原型继承

    3种方式:
    1.通过对象的动态特性 给对象的原型添加属性和方法
    2.将原型替换成新的对象
    (注意:替换成新对象应添加constructor:构造函数的地址)
    3.混入式给原型添加成员

  • 经典继承

    是ECMAScript5添加的新方法 Object.create()
    var 接收绑定好的新对象 = Object.create(想要作为原型绑定的对象)
    新方法有兼容性问题
    解决:
    检测浏览器是否支持此方法,不支持可以

1.自己重写并绑定此方法(需用到proto属性,引入新的兼容性问题,不推荐)

if(Object.create){
    var newObj = Obiect.create(obj1);
}else{
    Object.create=function(obj){
        function F(){
        }
        F.prototype=obj;
        new o = new F();
        return o;
    }
    var newObj = new F(obj1);

}

2.自己封装函数

function create(obj){
    if(Object.create){
        return = Object.create(obj);
    }else{
        function F(){
        }
        F.prototype = obj;
        return new F();
    }
}

2.Object原型的成员

  • constrctor:构造函数的地址
  • proto:原型的地址
  • toString():转化成通用格式的字符串
  • toLocalString():转化成本地格式的字符串
  • valueOf():当进行运算时先自动调用valueOf,如果不能运算调用toString进行字符串拼接
  • hasOwnProperty()判断对象自身是否拥有某属性
  • propertyIsEnumerable()先判断对象自身是否拥有某属性,再判断此属性是否可以迭代(遍历)

3.创建函数的3种方式

  • 直接声明

    function f(){
    }

  • 表达式

    var f = function(){
    }

  • 构造函数

    var f = new Function();

4.arguments对象

arguments是函数内的对象,是一个伪数组
无论函数是否有形参,都将传入的实参全部存储到arguments中

5.eval

  • JSON.parse()

    可以将传入的json格式的字符串转化为对象
    JSON对象有兼容问题

  • eval()

var jsonStr = "
    {
        name:jack,age:18
    }";

//可解析套()json格式字符串为对象
eval('('+jsonStr+')');

//或拿变量接收一下,否则当代码块解析
eval('var obj='+jsonStr);

6.静态成员和实例成员

构造函数的成员为静态成员
对象的成员为实例成员

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值