JavaScript学习

最近正在学习使用Node.js开发,其中避免不了javascript的使用。在复习javascropt的使用过程中,发现一些以前不了解的知识点。记录一下,后续有新的发现再补充。

1 prototype 属性:每个js对象都有该属性,由js在语法层面没有继承的概念,但这个属性却可以实现类似继承的效果。

    Node.js的源码中,util.js中有一个非常重要的方法  inherits 用于实现类的继承。看一下这个方法的源码:

exports.inherits = function(ctor, superCtor) {

  if (ctor === undefined || ctor === null)
    throw new TypeError('The constructor to "inherits" must not be ' +
                        'null or undefined');

  if (superCtor === undefined || superCtor === null)
    throw new TypeError('The super constructor to "inherits" must not ' +
                        'be null or undefined');

  if (superCtor.prototype === undefined)
    throw new TypeError('The super constructor to "inherits" must ' +
                        'have a prototype');

  ctor.super_ = superCtor;
  Object.setPrototypeOf(ctor.prototype, superCtor.prototype);
};

在W3C中是这样解释的:prototype 属性使您有能力向对象添加属性和方法。http://www.w3school.com.cn/jsref/jsref_prototype_date.asp

object.prototype.name=value

由此,我们可以理解,prototype的作用就是给 对象/类 附加上一些属性或者方法。从效果上达到了继承的效果。


2 call :给个我理解的公式:obj1.func.call(obj)  => ((typeof obj1)obj).func()

详细解释在一篇文章中有不错的说明,这里直接给出链接地址:http://www.jb51.net/article/22963.htm


3 ||和&& 运算符。

    在java,c,c++这些语言中,这两个运算符返回的是一个bool类型的值,但在javascript中却不是这样。

    || : 找到为true的分项就停止,并返回该分项的值,否则执行完并返回最后分项的值;

           var result = item_1 || item_2 || ... || item_n || default;  那么如果item_i中只要有一个的值为true,那么result = item_i(其中i为最小的那个为true的item);否则result = default.

    && : 找到为false的分项就停止,并返回该分项的值,否则执行完并返回最后分项的值;

           var result = item_1 && item_2 && ... && item_n && default;  那么如果item_i中只要有一个的值为false,那么result = item_i(其中i为最小的那个为false的item);否则result = default.






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值