资讯专栏INFORMATION COLUMN

《JavaScript模式》读书笔记(二)字面量和构造函数

_Zhao / 675人阅读

摘要:对象字面量定义一个空对象这里的空指的是其自身属性为空,对象继承了的属性和方法添加属性方法完全删除属性方法自定义构造函数用操作符调用构造函数时,函数内部会发发生以下情况创建一个新对象,并且引用了该对象并继承了该函数的原型属性和方法被加入到的引

对象字面量
//定义一个空对象,这里的空指的是其自身属性为空,dog对象继承了Object.prototype的属性和方法
var dog={}

//添加属性/方法
dog.name="Beijing"
dog.getName= function(){
    return this.name
}
//完全删除属性/方法
delete dog.name
自定义构造函数

用new操作符调用构造函数时,函数内部会发发生以下情况:

创建一个新对象,并且this引用了该对象并继承了该函数的原型

属性和方法被加入到this的引用中

新创建的对象由this引用最后隐式的返回this(或显式的返回其它对象)

var Person = function (name) {
    //使用字面量的方法添加一个新对象
    //var this = {}
    
    //向this添加指定的方法和属性
    this.name = name
    
    //return this
}
自调用构造函数

构造函数的调用方法为new调用,但有时候我们会忘记用new操作,就会报undefinde,为了防止这个我们可以在构造函数中检查this是否为构造函数的实例,如果为否构造函数可以再次调用自身

function Preson(){
    if(!(this instanceof Person)){
        return new Person()
    }
    //一些操作
}

//另一种方法是于arguments.callee进行比较
if(!(this instanceof arguments.callee)){
    return new arguments.callee()
}

每个函数内部,当该函数被调用时就会创建一个名为arguments的对象,该对象包含传递给该函数的所有参数,arguments对象有一个名为callee的函数,该函数会指向被调用的函数,需要注意的是ES5的严格模式不支持callee

检查数组性质

typeof(数组)会返回‘Object’,当我们需要名确一个对象是否为数组时,这个方法就不合适了
我们可以
1、instanceof Array
2、ES5定义的Array.isArray()
3、Object.prototype.toString()

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/108446.html

相关文章

  • javascript高级程序设计》第六章 读书笔记javascript对象的几种创建方式

    摘要:三种使用构造函数创建对象的方法和的作用都是在某个特殊对象的作用域中调用函数。这种方式还支持向构造函数传递参数。叫法上把函数叫做构造函数,其他无区别适用情境可以在特殊的情况下用来为对象创建构造函数。 一、工厂模式 工厂模式:使用字面量和object构造函数会有很多重复代码,在此基础上改进showImg(https://segmentfault.com/img/bVbmKxb?w=456&...

    xiaotianyi 评论0 收藏0
  • 读书笔记】《高性能JavaScript

    摘要:性能访问字面量和局部变量的速度是最快的,访问数组和对象成员相对较慢变量标识符解析过程搜索执行环境的作用域链,查找同名标识符。建议将全局变量存储到局部变量,加快读写速度。优化建议将常用的跨作用域变量存储到局部变量,然后直接访问局部变量。 缺陷 这本书是2010年出版的,这本书谈性能是有时效性的,现在马上就2018年了,这几年前端发展的速度是飞快的,书里面还有一些内容考虑IE6、7、8的东...

    chengjianhua 评论0 收藏0
  • JavaScript语言精粹 修订版》 读书笔记

    摘要:于是我就先把这本薄的经典书语言精粹修订版豆瓣读书本书简介总共章,除去附录,才页,读完并记录了一些笔记。读书笔记还可以分享给别人看。编程语言第版定义了的标准。程序检查时丢弃值为函数的属性。 之前看到这篇文章,前端网老姚浅谈:怎么学JavaScript?,说到怎么学习JavaScript,那就是看书、分析源码。10本书读2遍的好处,应该大于一本书读20遍。看书主动学习,看视频是被动学习。看...

    EscapedDog 评论0 收藏0
  • JavaScript 语言精粹》读书笔记 - 函数

    摘要:语言精粹读书笔记第四章函数函数字面量函数字面量包含个部分第一部分,保留字第二部分,函数名,它可以被忽略。这个超级延迟绑定使得函数对高度复用。构造器调用模式一个函数,如果创建的目的就是希望结合的前缀来调用,那它就被称为构造器构造。 《JavaScript 语言精粹》 读书笔记 第四章 函数 Functions 函数字面量 函数字面量包含4个部分: 第一部分, 保留字 function...

    wdzgege 评论0 收藏0
  • 《高性能javascript读书笔记-第章 数据存取

    摘要:局部变量位于作用域链的起始位置,因此访问速度最快全局变量位于作用域链的最末端,因此访问速度最慢。如访问时间实例属性第一层原型属性第二层原型属性在同一个函数中没必要多次读取同一个对象成员,建议第一次查询到值后就将其存储在局部变量中。 javascript中有四种基本的数据存取位置:字面量、变量、数组元素、对象成员。 1.访问字面量和局部变量的速度最快,访问数组元素和对象成员相对较慢。 2...

    everfight 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<