JavaScript 高级

创建对象的工厂模式:

 function factoryPerson(name,age,action){
            return{
                name:name,
                age:age,
                action:action,
                work:work,
            }
        }

方法的函数定义在外面,可以实现实例对象,对方法的共享

var work = function(){
            document.write("<br> 姓名:" + this.name + 
            "<br>年龄:" + this.age + "<br>职业:" + this.action)
        }

构造函数创建对象

  function Person(name,age,action,food){
            this.name = name;
            this.age = age;
            this.action = action;
            this.food = food;
            this.eat = personMethod.eat;
            this.study = personMethod.study;
            this.jiuzhen = personMethod.jiuzheng;
            //this.work = function(){
                //document.write("<br> 姓名:" + this.name + 
            //"<br>年龄:" + this.age + "<br>职业:" + this.action)
            // }

 存放方法的对象

 var personMethod = {
            eat:function(){
                document.write("<br>" + this.name + "喜欢吃:" + this.food);

            },
            study:function(){

            },
            jiuzhen:function(){
                
            }
        }

构造函数

 所有的对象都有一个constructor属性,该属性的取值就是生成该对象的构造函数的

原型(prototype)

所有的函数都是对象,每个函数对象都有个属性.prototype,该属性的取值也是一个对象,而且该对象也是该函数的实例

我们可以通过设置prototype对象的方法和属性,每个实例可以共享这些属性和方法。

原型链

函数进阶

      普通函数

       function 函数名(参数){ }

       函数表达式

        var 变量名 = function(参数){     } //匿名函数

        构造函数

        new  构造函数() {    }//new运算符

函数内this指向不同场景

 

call 借用其他对象的方法,

【格式】被借用对象.方法call(借用对象,参数列表)

 

apply 借用其他对象的方法,

【格式】被借用对象.方法.apply(借用对象,[参数列表])

【注】传参时遍历数组,一一赋给调用方法的参数

 

bind 复制其他对象的方法

【格式】 被复制的对象.方法.blind(借用对象,参数列表)

【注】会生成新的对象

 

函数的其他成员

Arguments 实参数集合,在不声明形参的情况下可以取到传过来的参数

函数可以作为参数

函数可以作为返回值

 

正则表达式

作用:1.判断指定格式的字符串是否存在  正则表达.test("字符串");

            2.提取指定格式的字符串,并返回数组   字符串.match(正则表达式);

            3.替换指定格式的字符串,并返回字符串        字符串.replace(正则表达式,“替换内容");

创建

      var 正则表达变量 = /表达式/gi

      var 正则表达对象 = new RegExp("正则表达式”,"gi");

     【注】g搜索字符串全部  相当于全局     i表示不区分大小写

编辑正则表达式

元字符

\d   0-9字符

\D  匹配任意非数字的字符

\w  字母,数字,下划线

\W 非字母,数字,下划线的字符

\s  任意空白字符

\S  非空白字符

.    匹配换行符(\n)以为的任意字符

^  表示匹配行首文本

$  表示匹配行尾文本

限定字符

*  0次,多次

+  1次,多次

?  0次,1次

{n}  重复n次

{n,}  重复n次上

{n,m}  重复n到m次

其他

[字符串] 匹配其中任何一个

[^字符串]  取反

  |   或者

() 配合 |,可以实现选择匹配(a|b)

[\u4e00-\u9fa5]  匹配汉字

伪数组:本质就一个对象,只不过他的属性模拟了数组的索引

           var objArr = {

                  o:"welcome",

                   1:"hello",

                   2:"world"

    }

Object静态方法

 Object.assgin(对象列表)  合并对象

Object.create(对象模板)依据对象模板创建一个新对象

Object.keys(对象)  获取对象可枚举的属性,并且返回数组

Object.defineProperty(对象,‘属性名’{

          value:属性值,

           writable:是否可重写,

           enumerable:是否可枚举,

           configurable:是否可删除

       })

实例成员

        实例.construtor

        实例.hasOwnProperty("属性名”);//判断自己是否有该属性

垃圾回收机制:有垃圾回收器,自动完成垃圾回收

Event  Loop  事件循环

         

 

 

 

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值