博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript new 一个构造函数
阅读量:7289 次
发布时间:2019-06-30

本文共 1912 字,大约阅读时间需要 6 分钟。

我们在使用JavaScript对象的时候,除了一些浏览器内置的单体对象可以直接使用外,都会new一个出来使用。

1、new

var obj = new Object();

此时的new关键字干了最有用的一件事、继承所有Object.prototype上的方法( 一切对象皆继承于Object )

2、new过程中发生了什么?

1)、创建一个对象

2)、将构造函数的作用域赋给新对象(因此this就指向了新对象(obj))

3)、执行构造函数中的代码(为新的对象添加属性)

4)、返回新对象

 

var arr = [1,2,3,4];arr.a = 12;arr.show = function(){    alert(this.a);}arr.show();
var obj = new Object();     obj.name = "ntsc";     obj.qq = "785537837";     obj.showName = function(){     alert("我的名字叫:"+ this.name);};obj.showQQ = function(){     alert("我的QQ号:"+ this.qq);创建};console.dir(Object);console.dir(obj);

 

function createPerson(name, QQ) { // 构造函数       // 创建一个空白对象(原料)     var obj = new Object();     // 加属性和方法(加工)     obj.name = name;     obj.qq = QQ;     obj.showName = function () {         console.log("我的名字叫:" + this.name);     };     obj.showQQ = function () {         console.log("我的QQ号:" + this.qq);     };     // 对象返回(出厂)     return obj;}
var obj = createPerson("ntsc", "123456");

 

function CreatePerson(name, QQ) { // 在构造函数里面增加属性        this.name = name;        this.qq = QQ;}CreatePerson.prototype.showName = function () { // 在原型里面增加方法(一样的东西放入"原型"里面)    console.log("我的名字叫:" + this.name);};CreatePerson.prototype.showQQ = function () {    console.log("我的QQ号:" + this.qq);};ar obj = new CreatePerson("ntsc", "123465")

 

function Obj(){    this.a = "123";    this.b = function(){        alert("b");        }}Obj.prototype.c = function(){    alert("c");}var obj = new Obj();

 

 面向对象:在不了解原理的情况下、使用其功能。只关注对象的功能、不去关注其内部细节(一种通用思想)

对象:是由"属性" 和 "方法"构建的

  变量(自由的、不属于任何事物) 和 属性(属于某一个特定对象)本质上是一个东西

  函数(自由的、不属于任何事物) 和 方法(属于某一个特定对象)本质上是一个东西

Object:一切对象他爹(很纯很干净、一切对象皆继承于他)

this:

  1、this是誰和函数在哪里定义和哪里执行没有关系

  2、当前的方法属于誰、this就是誰(看函数前面的点"."、有点的话前面是誰、this就是誰)、没有电、this为window

  3、給函数绑定事件、对于的this就是当前被绑定事件的元素

  4、自执行函数、this永远都是window

对象实例化:人类(对象) --- 小明(实例化) --- 具体到个体

注:如果构造函数不需要参数,可以省去括号,即:new Obj() 和 new Obj是等同的。

转载于:https://www.cnblogs.com/ntscshen/p/4711091.html

你可能感兴趣的文章
100个Google终极技巧【精品转载】
查看>>
我的友情链接
查看>>
android 获取到view渲染完后的宽高等属性的 监听器
查看>>
IOS学习之数据库(7)--FMDB简单介绍
查看>>
Redmine(三)——Redmine日常使用
查看>>
Jmeter HTTP接口案例开发、调试方法
查看>>
ant编译报错“错误: 编码UTF-8的不可映射字符”
查看>>
容器控件ScrollViewer控件
查看>>
05 备份手机短信
查看>>
Java Synchronized之偏向锁
查看>>
Linux netstat命令详解
查看>>
大型网站技术架构(六)网站的伸缩性架构
查看>>
web服务器、容器和中间件
查看>>
fedora linux自动锁频问题
查看>>
Centos0S7手动安装OpenStack Pike版--(Evironment)
查看>>
Distributed Configuration Management Platform(分布式配置管理平台)
查看>>
21分钟Mysql入门教程
查看>>
lmis库存预占修改
查看>>
Java基础学习总结(10)——static关键字
查看>>
BZOJ4377[POI2015]Kurs szybkiego czytania——数学思维题
查看>>