美文网首页
构造函数

构造函数

作者: 才気莮孒 | 来源:发表于2017-06-20 00:59 被阅读0次

构造函数

使自己的对象多次复制,同时实例根据设置的访问等级可以访问其内部的属性和方法

当对象被实例化后,构造函数会立即执行它所包含的任何代码

functionmyObject(msg){

特权属性(公有属性)

this.myMsg = msg;//只在被实例化后的实例中可调用

this.address = '上海';

私有属性

varname = '豪情';

varage = 29;

varthat =this;

私有方法

functionsayName(){

alert(that.name);

}

特权方法(公有方法)

能被外部公开访问

这个方法每次实例化都要重新构造而prototype是原型共享,所有实例化后,都共同引用同一个

this.sayAge =function(){

alert(name);//在公有方法中可以访问私有成员

}

私有和特权成员在函数的内部,在构造函数创建的每个实例中都会包含同样的私有和特权成员的副本,

因而实例越多占用的内存越多

}

公有方法

适用于通过new关键字实例化的该对象的每个实例

向prototype中添加成员将会把新方法添加到构造函数的底层中去

myObject.prototype.sayHello =function(){

alert('hello everyone!');

}

静态属性

适用于对象的特殊实例,就是作为Function对象实例的构造函数本身

myObject.name = 'china';

静态方法

myObject.alertname =function(){

alert(this.name);

}

实例化

varm1 =newmyObject('111');

---- 测试属性 ----

console.log(myObject.name); //china

console.log(m1.name); //undefined, 静态属性不适用于一般实例

console.log(m1.constructor.name); //china, 想访问类的静态属性,先访问该实例的构造函数,然后在访问该类静态属性

console.log(myObject.address); //undefined, myObject中的this指的不是函数本身,而是调用address的对象,而且只能是对象

console.log(m1.address); //上海 此时this指的是实例化后的m1

---- 测试方法 ----

myObject.alertname(); //china,直接调用函数的类方法

m1.alertname(); //FF: m1.alertname is not a function, alertname 是myObject类的方法,和实例对象没有直接关系

m1.constructor.alertname(); //china, 调用该对象构造函数(类函数)的方法(函数)

m1.sayHello(); //hello everyone, myObject类的prototype原型下的方法将会被实例继承

myObject.sayHello(); //myObject.sayHello is not a function,sayHello是原型方法,不是类的方法

---- 测试prototype ----

console.log(m1.prototype); //undefined, 实例对象没有prototype

console.log(myObject.prototype); //Object

alert(myObject.prototype.constructor); //console.log返回myObject(msg),此时alert()更清楚,相当于myObject

console.log(myObject.prototype.constructor.name); //china, 相当于myObject.name;

相关文章

  • Flutter 6种构造函数详解

    Flutter有生成构造函数、默认构造函数、命名构造函数、重定向构造函数、常量构造函数、工厂构造函数 一.生成构造...

  • C# 构造函数总结

    构造函数 构造函数分为:实例构造函数,静态构造函数,私有构造函数。 实例构造函数 1、构造函数的名字与类名相同。 ...

  • Javascript 基础之原型链

    构造函数、构造函数实例、构造函数原型 function Student (name) { } - 这是构造函数va...

  • Swift基础语法-类的构造函数

    本节知识点 构造函数的介绍 构造函数的基本使用 自定义构造函数 属性与构造函数 1. 构造函数的介绍 构造函数类似...

  • C++:面向对象基础

    构造函数 C++中有三种构造函数:默认构造函数,有参构造函数,拷贝构造函数 类对象的初始化 括号法//默认构造函数...

  • 构造函数

    构造函数分为: 1.实例构造函数 2.私有构造函数 3.静态构造函数 私有构造函数 私有构造函数是一种特殊的实例构...

  • Dart整理

    Dart构造函数 普通构造函数和命名构造函数 默认构造函数一个类没有声明构造函数,默认会有一个无参构造函数,声明了...

  • Kotlin面向对象 (3)✔️构造函数

    主构造函数次构造函数默认构造函数 kotlin中的构造函数有主次之分,主构造函数只能有一个,此构造函数可以有多个。...

  • [C++之旅] 10 构造函数

    [C++之旅] 10 构造函数 构造函数的特点 构造函数在对象实例化时被自动调用 构造函数与类同名 构造函数没有返...

  • Java基础-3 构造函数

    构造函数: 构造函数的作用: 给对应的对象进行初始化。 构造函数的格式: 构造函数要注意的细节:1. 构造函数是...

网友评论

      本文标题:构造函数

      本文链接:https://www.haomeiwen.com/subject/wltoqxtx.html