创建实例

funtion Fn (){
    var num = 10;    
    this.x = 100;
    this.getX = function(){
        console.log(this.num); 

    }
}
var f1 = new Fn;
f1.getX();
最后执行的结果是:undefined
说明: 类有普通的里面,当函数执行的时候,var num只是当的形成的私有作用域中的私有变量而已,它和我们的f1这个实例没有任何的关系,只有this.xxx=xx才相当于给f1增加私有的属性和方法,才和我们的f1有关系;

funtion Fn (){
    var num = 10;    
    this.x = 100;
    this.getX = function(){
        console.log(this.num); 
    }
    return false;
    return {"name","123"};
}
var f1 = new Fn;
console.log(f1);
说明:在构造函数欧式中,浏览器会默认的把我们的实例返回(返回的是一个数据类型的值);如果我们手动写了return返回:
    返回的是一个基本数据类型就那个的值,房钱实例是不变的,例如:return 100;我们的f1还是当前Fn的实例
    返回的是一个引用数据类型的值,当前的实例会被自己的返回值给替换掉,例如返回:return {"name","123"};我们的f1就不再是Fn的实例了,而是对象{“name”,"123"};

funtion Fn (){
    var x= 10;    
    this.getX = function(){
        console.log(this.x); 
    }
}
var f1 = new Fn;
说明:检测某个实例是否属于这个类---》instanceof
console.log(f1.instanceof Fn);//-->true
这方法可以检测数据类型:
f1 instanceof Array -> false;
f1 instanceof Object  -> true
这个检测数据类型的方法可以和typeof比较
funtion Fn (){
    var x= 10;    
    this.getX = function(){
        console.log(this.x); 
    }
}
var f1 = new Fn;
var f2 = new Fn;
说明 : f1和f2都是Fn这个类的一个实例,都拥有x和getX两个属性,但是这个属性是各自的私有属性,所以console.log(f1.getX ==== f2.getX);//--> false

in 检测某一个属性是否属于这个对象(attr in object),不管是私有的属性还是公用的属性,只要存在,用in检测都是true

//hasOwnProperty:用来检测某一个属性是否是这个对象的“私有属性”,这个方法只能检测私有属性
console.log(f1.hasOwnProperty("getX"));-->true  "getX"是f1的私有属性

//检测某一个属性是否是这个对象的“公有属性”

function hasPubProperty(obj,attr){
    return (attr in obj) && !obj.hasOwnProperty(attr);
//属性是对象的属性,但又不是私有的属性,必定是公有属性;
}

JS学习笔记-构造函数篇的更多相关文章

  1. js学习笔记第二篇

    Js笔记整理 1.StringAPI a)        大小写转换:str.toUpperCase();str.toLowerCase(); b)        获取指定位置字符: Str[i]-- ...

  2. Vue.js学习笔记 第一篇 数据绑定

    双花括号文本插值 先来个最简单的例子,看完之后立马会用Vue了,是不是很有成就感 <!DOCTYPE html> <html> <head> <meta ch ...

  3. Vue.js学习笔记 第二篇 样式绑定

    Class绑定的对象语法 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  4. 【转】Backbone.js学习笔记(二)细说MVC

    文章转自: http://segmentfault.com/a/1190000002666658 对于初学backbone.js的同学可以先参考我这篇文章:Backbone.js学习笔记(一) Bac ...

  5. 《JavaScript高级程序设计》学习笔记12篇

    写在前面: 这12篇博文不是给人看的,而是用来查的,忘记了什么基础知识,点开页面Ctrl + F关键字就好了 P.S.如果在对应分类里没有找到,麻烦告诉我,以便尽快添上.当然,我也会时不时地添点遗漏的 ...

  6. PHP学习笔记 - 进阶篇(4)

    PHP学习笔记 - 进阶篇(4) 字符串操作 字符串介绍 PHP开发中,我们遇到最多的可能就是字符串. 字符串变量用于包含字符串的值. 一个字符串 通过下面的3种方法来定义: 1.单引号 2.双引号 ...

  7. PHP学习笔记 - 进阶篇(3)

    PHP学习笔记 - 进阶篇(3) 类与面向对象 1.类和对象 类是面向对象程序设计的基本概念,通俗的理解类就是对现实中某一个种类的东西的抽象, 比如汽车可以抽象为一个类,汽车拥有名字.轮胎.速度.重量 ...

  8. WebGL three.js学习笔记 使用粒子系统模拟时空隧道(虫洞)

    WebGL three.js学习笔记 使用粒子系统模拟时空隧道 本例的运行结果如图: 时空隧道demo演示 Demo地址:https://nsytsqdtn.github.io/demo/sprite ...

  9. vue.js 学习笔记3——TypeScript

    目录 vue.js 学习笔记3--TypeScript 工具 基础类型 数组 元组 枚举 字面量 接口 类类型 类类型要素 函数 函数参数 this对象和类型 重载 迭代器 Symbol.iterat ...

随机推荐

  1. @Modifying 注解完成修改操作

    以上我们做的都是查询,那要如何实现 修改.删除和添加呢? 可以通过以下两种方式: (1)通过实现 CrudRepository 接口来完成(以后介绍): (2)通过 @Modifying 注解完成修改 ...

  2. Java虚拟机,类文件结构深度解析

    Java类文件结构 Java虚拟机不和包括Java在内的任何语言绑定,只与 "Class文件" 这种特定的二进制文件所关联, Class文件中包含了Java虚拟机指令集合符号表以及 ...

  3. springboot 学习笔记(五)

    (五)springboot整合thymeleaf模板,实现简单的登陆 1.修改上一节笔记中的user表,新增一个password字段,同时要求username为UNIQUE,以实现登陆校验,表结构如下 ...

  4. hibernate课程 初探单表映射3-1 hibernate单表操作简介

    本章简介: 1 单一主键 2 基本类型 3 对象类型 4 组件属性 5 单表操作CRUD实例

  5. Vue汇总(搬砖)

    掘金: https://juejin.im/ Element: http://element-cn.eleme.io/#/zh-CN 验证码GEETEST---极验 : https://docs.ge ...

  6. valueOf() 和 toString()

    valueOf():如果存在任意原始值,返回最适合该对象类型的原始值. toString():将该对象的原始值以字符串形式返回. 这两个方法一般是交由JS去隐式调用,以满足不同的运算情况.  举个栗子 ...

  7. iOS 点击左上角系统返回按钮方法

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(endBackground) name:UIAppl ...

  8. linux中python安装

    1.查看当前环境中是否存在python安装包 [zyj@localhost ~]$ rpm -qa | grep python gnome-python2-gnome--.el6.x86_64 pyt ...

  9. N 叉树的层序遍历

    给定一个 N 叉树,返回其节点值的层序遍历. (即从左到右,逐层遍历). 例如,给定一个 3叉树 : 返回其层序遍历: [ [1], [3,2,4], [5,6] ] 说明: 树的深度不会超过 100 ...

  10. 服务器 PyTorch 报错 重装 PyTorch

    两个代码,pix2pix + CycleGan ,  wgan-gp 都是 pytorch 写的, 在服务器端运行,均存在下列问题,故判定是 pytorch 的安装问题. Traceback (mos ...