1、hasOwnProperty 函数的返回值为Boolean类型。如果对象object具有名称为propertyName的属性,则返回true,否则返回false。

function Box(){
this.a="123";
}
var box1=new Box();
box1.hasOwnProperty("a"); //返回true

如果在原型上添加一个属性,则返回false

// 想要查看对象(包括原型链)是否具备指定的属性,可以使用in操作符

function Box(){
this.a="123";
}
var box1=new Box();
Box.prototype.abc="345" box1.hasOwnProperty("abc"); //返回false;
"abc" in box1 // 返回true

2、复习递归

function box(num){
if(num<=1){
return 1;
}else{
return num*box(num-1);
}
}
box(3); 通过arguments.callee来调用函数本身 function box(num){
if(num<=1){
return 1;
}else{
return num*arguments.callee(num-1);
}
}
box(3);

3、简单的回调函数

function $(id){
return document.getElementById(id);
}
Object.prototype.show=function(fn){
if(fn && fn.constructor==Function){ //判断,有fn和fn是一个函数
fn(); //直接执行
}else{
this.style.display="none";}
}
$("c").onclick=function(){
this.show(function(){alert()});
}
//把li节点隐藏,利用回调方法
var appendDiv=function( callback){
var li=document.getElementsByTagName('li');
for(var i=0;i<li.length;i++){
if(typeof callback==='function'){
callback(li[i])
}
}
}
appendDiv(function(node){
node.style.display='none';
})

4、链式调用

function $(id){
return new _$(id);
}
function _$(id){
this.elements = document.getElementById(id);
}
_$.prototype = {
constructor:_$,
hide:function(){
console.log('hide');
return this;
},
show:function(){
console.log('show');
return this;
},
getName:function(callback){
if(callback){
callback.call(this,this.name);
}
return this;
},
setName:function(name){
this.name = name;
return this;
}
}
$('c').setName('xesam').getName(function(name){
console.log(name);
}).show().hide().show().hide().show();

hasOwnProperty 递归 简单回调 链式调用的更多相关文章

  1. js简单实现链式调用

    链式调用实现原理:对象中的方法执行后返回对象自身即可以实现链式操作.说白了就是每一次调用方法返回的是同一个对象才可以链式调用. js简单实现链式调用demo Object.prototype.show ...

  2. 史上最简单的手写Promise,仅17行代码即可实现Promise链式调用

    Promise的使用相比大家已经孰能生巧了,我这里就不赘述了 先说说我写的Promise的问题吧,无法实现宏任务和微任务里的正确执行(也就是在Promise里面写setTimeout,setInter ...

  3. 浅析 JavaScript 链式调用

    对$函数你已经很熟悉了.它通常返回一个html元素或一个html元素的集合,如下: function$(){ var elements = []; for(vari=0,len=arguments.l ...

  4. 《javascript设计模式》笔记之第六章:方法的链式调用

    这一章要实现的就是jQuery的那种链式调用,例子: $(this).setStyle('color', 'green').show(); 一:调用链的结构: 首先我们来看一下最简单的$()函数的实现 ...

  5. 【Java】子类的链式调用

    记录最近在项目设计中遇到的一个小问题. 前提:有这样两个POJO类,它们都可以通过链式调用的方式来设置其属性值,其中一个类继承了另一个类. 问题:通过链式调用,子类对象访问父类方法后,如何使返回对象仍 ...

  6. Swift2.1 语法指南——可空链式调用

    原档:https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programmi ...

  7. jQuery的XX如何实现?——2.show与链式调用

    往期回顾: jQuery的XX如何实现?——1.框架 -------------------------- 源码链接:内附实例代码 jQuery使用许久了,但是有一些API的实现实在想不通.于是抽空看 ...

  8. 关于JavaScript中的setTimeout()链式调用和setInterval()探索

    http://www.cnblogs.com/Wenwang/archive/2012/01/06/2314283.html http://www.cnblogs.com/yangjunhua/arc ...

  9. javascript学习(10)——[知识储备]链式调用

    上次我们简单的说了下单例的用法,这个也是在我们java中比较常见的设计模式. 今天简单说下链式调用,可能有很多人并没有听过链式调用,但是其实只要我简单的说下的话,你肯定基本上都在用,大家熟知的jQue ...

随机推荐

  1. Maven2 根据项目生成模版项目,并使用该模板批量创建工程。

    Maven 3 创建自己的模版,并使用模版创建工程 1.建立样板Maven工程: myModel 2.进入 myModel 工程根目录执行:mvn archetype:create-from-proj ...

  2. Android 进程常驻(使用第三方MarsDaemon)(虽然不可用,但是还是保留下。)

    github地址: https://github.com/Marswin/MarsDaemon 原理分析: Android 进程常驻(0)----MarsDaemon使用说明 Android 进程常驻 ...

  3. Leetcode N-Queens

    The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no two queens ...

  4. SASS+COMPASS 自适应 学习笔记

    来源 http://snugug.github.io/RWD-with-Sass-Compass/#/ 1 安装 COMPASS 扩展 安装 方式 gem 'extension', '~>X.Y ...

  5. Easyui的Dialog的toolbar的自定义添加

    最近一直在写快速定制Web表格,基于Easyui,整个过程使用了大量的Easyui的dialog,每个dialog的代码大部分都雷同,感觉代码出现了很大程度的重复,然后想写一个通用的dialog设置函 ...

  6. PKUSC2016

    day x(x<0) 外出培训倒数第二天晚上发烧了....逃过了第二天早上的考试,orz 抢到rank 1 的commonc神犇!! day 0 下午到了北大,发了两张50元饭卡.这是第三次来北 ...

  7. Python开发: DOM

    文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口.它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式.我们最为关心的是,DOM把 ...

  8. workspace路径有中文情况会报java.net.MalformedURLException: unknown protocol: d错误

    原因及描述:java读取xml文件时如果出现中文字符就会出现这类错误 解决方法:   1.将中文路径改为英文路径 2.读取file时"file:///d:/" 而不是"d ...

  9. 使用mutt+msmtp在Linux命令行界面下发邮件(续)

    一年前写过一篇<使用mutt+msmtp在Linux命令行界面下发邮件>,但是最近想照着文中的办法解决新的问题时发现又有新的疑惑了,所以就有了今天这篇“续集”. 首先说说msmtp.如果你 ...

  10. javascript:算法之数组sort排序

    数组sort排序 sort比较次数,sort用法,sort常用 描述 方法sort()将在原数组上对数组元素进行排序,即排序时不创建新的数组副本.如果调用方法sort()时没有使用参数,将按字母顺序( ...