JavaScript new 一个构造函数

我们在使用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是等同的。

时间: 2024-08-10 14:55:09

JavaScript new 一个构造函数的相关文章

JavaScript中的构造函数

function Accom(){};    //创建一个构造函数 //创建两个对象 var house=new Accom(); var apartment=new Accom(); 通过构造函数创建的对象有一个属性constructor,这个属性指向创建该对象时所用的Javascript构造函数. house.constructor===Accom;  或者   house instanceof Accom;     //true JavaScript中的每个构造函数都有一个prototyp

JavaScript写一个连连看的游戏

天天看到别人玩连连看, 表示没有认真玩过, 不就把两个一样的图片连接在一起么, 我自己写一个都可以呢. 使用Javascript写了一个, 托管到github, 在线DEMO地址查看:打开 最终的效果图: 写连连看之前要先考虑哪些呢? 1:如何判断两个元素可以连接呢, 刚刚开始的时候我也纳闷, 可以参考这里:打开: 2:模板引擎怎么选择呢, 我用了底线库的template,因为语法简单. 本来想用Handlebars,但是这个有点大啊, 而且底线库也提供很多常用工具方法( •? ω •? )y:

JavaScript 术语 概念 构造函数

构造函数: 所谓"构造函数",其实就是一个普通函数,但是内部使用了this变量.对构造函数使用new运算符,就能生成实例,并且this变量会绑定在实例对象上. (就是一个普通的函数,与其他函数没有任何区别,可以理解为 函数==构造函数,它只是概念上的一个定义,使用它用来实例化对象.) 对于JavaScript的内置对象,Object.Array.Date等等这些都是构造函数. Javascript规定,每一个构造函数都有一个prototype属性,指向另一个对象.这个对象的所有属性和方

JavaScript中的构造函数和工厂函数

JavaScript中的工厂函数 1 function crateHero (name,blood,weapoon) { 2 var o = new Object(); 3 o.name = name; 4 o.blood = blood; 5 o.weapoon = weapoon; 6 o.attch = function () { 7 console.log(this.name+"用"+this.weapoon+"进行了攻击"); 8 } 9 return o

用javascript实现一个2048游戏

早就想自己写一个2048游戏了,昨晚闲着没事,终于写了一个如下图,按方向键开始玩吧.如果觉得操作不方便,请直接打开链接玩吧:http://gujianbo.1kapp.com/2048/2048.html 附上源代码链接:https://github.com/gujianbo/js2048 个人博客地址:http://gujianbo.1kapp.com/ 新浪微博:http://weibo.com/gujianbobo 欢迎读者交流讨论并提出宝贵意见. 用javascript实现一个2048游

javascript删除一个html元素节点代码实例

javascript删除一个html元素节点代码实例:本章节介绍一下如何利用原生javascript实现删除一个指定的html元素.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title&

Javascript的一个生产PDF的库: unicode和中文问题的解决

Javascript的一个生产PDF的库: unicode和中文问题的解决基于canvas和jspdf库, 实现用javascript的支持中文pdf生成实用工具.参考:http://javascript.ruanyifeng.com/htmlapi/canvas.html 1. 使用canvas将中文写入canvas中,再将canvas转换成图片,从而解决中文问题. <!DOCTYPE html> <html> <head> </head> <bod

JavaScript 创建一个 form 表单并提交

<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <input onclick="MakeForm()" type="button" class="btn grey"

【Java】向一个页面发送post请求并获取其处理之后的结果与用javascript创建一个表单后提交的安全性

本文对比与<[Java]读取网页中的内容>(点击打开链接)一文,向一个页面发送get请求,并获取其处理之后的结果,这里是向一个页面发送post请求,并获取其处理之后的结果.如果向一个页面发送get请求,并获取其处理之后的结果,只需要直接读取一个网页用?后接各种用&参数连接的参数即可,而向一个页面发送post请求,并获取其处理之后的结果,就不是这么简单了. 这里方法可能在普通的Java文件中不会太常见,但在jsp.安卓等javaweb的网页编程中却十分常用 import java.io.