zoukankan      html  css  js  c++  java
  • javascript高级编笔记第六章

    javascript高级编笔记第六章
    1 对象的创建方法 使用new();
    使用字面量创建;

    使用工厂模式创建对象 用函数封装以特定接口创建对象的细节例子如下
    function creatPerson(name,age,job){
    var o = new Object();
    o.name = name;
    o.age = age;
    o.job = job;
    o.sayname = function(){
    console.log(this.name);
    };
    return o;
    }
    var p1 = creatPerson('xd','25','coder');
    p1.sayname();

    使用构造函数模式创建对象 区别工厂模式 1没有明显创建对象 2属性和方法复制给THIS 3 没有return
    function Person(name,age,job){
    this.name = name;
    this.age = age;
    this.job = job;
    this.sayname = function(){
    console.log(this.name);
    };
    }
    var p1 = new Person('xd','25','coder');
    p1.sayname();
    函数名Person为大写 JS构造函数名首字母大写 非构造函数名小写 构造函数可以用来创建对象
    创建Person对象必须使用new 经历四个步骤
    1 创建一个新对象
    2 将构造函数的的作用域赋给新的对象 this就指向这个对象
    3 执行函数中的代码 (为函数对象添加属性和方法)
    4 返回新的对象
    检测 alert(p1 instanceof Object);//true
    ----------------------------------------------------------
    任何函数如果用NEW 来调用 都可以作为构造函数使用 任何构造函数 不用new调用 都可以当作普通函数来使用
    ----------------------------------------------------------
    2 原型模式来创建对象 实例
    function Person(){
    Person.prototype.name = 'xued';
    Person.prototype.age = '25';
    Person.prototype.job = 'coder';
    Person.prototype.sayname =function(){
    console.log(this.name);
    }
    }
    var p1 = new Person();
    var p2 = new Person();
    alert(p1.sayname()==p2.sayname());//true
    原型模式简单的方法
    function Person(){

    }
    Person.prototype={
    name : "xued",
    age : "25",
    job : "coder",
    sayname : function(){
    alert(this.name);
    }
    }
    var p1 = new Person();
    //重新添加方法;
    Person.prototype.sayhi=function(){
    alert('1');
    };
    p1.sayhi();

    混合模式
    function Person(name,age,job){
    this.name=name;
    this.age=age;
    this.job=job;
    }
    Person.prototype={
    constructor:Person,
    sayname : function(){
    // alert(this.name);
    return this.name;
    }
    }
    var p1 = new Person('xd','25','coder');
    var p2 = new Person('xy','25','gamer');
    alert(p1.sayname()==p2.sayname()); //false;
    // p1.sayname();
    3--------------------
    继承
    太难

  • 相关阅读:
    javascript中数组去重的4种方法
    dede使用方法----实现英文版的搜索功能
    dede去掉当前位置position后面的箭头
    dede使用方法----如何转换时间戳
    Python字符串、元组、列表、字典互相转换的方法
    Python 列表的操作
    Python 元祖的操作
    Python 操作文件、文件夹、目录大全
    python文件目录操作大全
    python用time函数计算程序运行时间
  • 原文地址:https://www.cnblogs.com/xuedong/p/5217285.html
Copyright © 2011-2022 走看看