创建实例

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. LeetCode 179 Largest Number 把数组排成最大的数

    Given a list of non negative integers, arrange them such that they form the largest number.For examp ...

  2. SpringBoot项目实现文件上传和邮件发送

    前言 本篇文章主要介绍的是SpringBoot项目实现文件上传和邮件发送的功能. SpringBoot 文件上传 说明:如果想直接获取工程那么可以直接跳到底部,通过链接下载工程代码. 开发准备 环境要 ...

  3. Oracle视图,索引,序列

    什么是视图[View] (1)视图是一种虚表 (2)视图建立在已有表的基础上, 视图赖以建立的这些表称为基表(3)向视图提供数据内容的语句为 SELECT 语句,可以将视图理解为存储起来的 SELEC ...

  4. How to Install VMware Tools on RHEL 7/CentOS 7

    The original address Mware Tools is one of important components for virtual machine (VM) in order ge ...

  5. c#读取word内容,c#提取word内容

    Post by 54admin, 2009-5-8, Views:575 1: 对项目添加引用,Microsoft Word 11.0 Object Library 2: 在程序中添加 using W ...

  6. 学习日记---java

    1.构造函数 构造函数:首字母大写:对象创建时,就会调用与之对应的构造函数,对对象进行初始化. 只调用一次. 一般函数:对象创建后,需要函数功能时才调用.可以多次调用.首字母小写. 构造函数--重载: ...

  7. Spring MVC + Thymeleaf

    参考网址: https://www.cnblogs.com/litblank/p/7988689.html 一.简介 1.Thymeleaf 在有网络和无网络的环境下皆可运行,而且完全不需启动WEB应 ...

  8. bt5 r3下metasploit连接postgresql数据库

    一.查看PostgreSQL使用的端口,默认为7337 #: netstat -tnpl |grep postgres 二.查看Msf配置,里面有默认的用户名和密码 默认配置文件:/opt/metas ...

  9. zabbix-2.2.2(Ubuntu 14.04 LTS/OpenLogic 7.2)

    平台: arm 类型: ARM 模板 软件包: apache-2.4.7 mariadb-5.5.50 mysql-5.5.52-0ubuntu0.14.04.1 php-5.4.16 php-5.5 ...

  10. Windows系统HTTP身份验证方法

    当Windows客户端尝试使用HTTP协议访问基于Web的资源时,会在客户端和服务器之间建立"对话".换句话说,服务器告诉客户端,访问资源之前进行身份验证 ,并且服务器还告诉客户端 ...