通过new操作符来调用函数,来达到访问对象this值得目的,构造器将其创建的对象返回给我们。

直接上代码

//创建构造器函数

function Gadget(name, color){

  this.name = name ;//添加属性

  this.color = color ;

  this.whatAreYou = function(){//添加方法

    return this.color + " " + this.name ;

  }

}

//另一种添加属性和方法,通过构造器函数的prototype属性来添加

Gadget.prototype.price = 100;//原型属性

Gadget.prototype.rating = 3;

Gadget.prototype.getInfo = function(){

  return this.price+" "+this.rating;

}

/*简写

Gadget.prototype = {

  price:100,

  rating = 3,

  getInfo = function(){

    return this.price + " "+this.rating;

  }

}

*/

//使用构造器来新建对象

var newtoy = new Gadget('webcam','black');

newtoy.name;//

---->>webcam

//对象传递的方式是通过传引用,即所创建的对象实体中并没有保存一份属于自己的原型副本,值传递会产生副本

Gadget.prototype.get = function(what){

  return this[what];

}

//newtoy.name

如果对象自身的属性和原型中同上存在name属性,对象自身的属性优先级高于原型的属性

当删除(delete newtoy.name)对象属性时,原型中的name属性就被使用

js--使用构造器函数来新建对象及操作的更多相关文章

  1. JS function 是函数也是对象, 浅谈原型链

    JS function 是函数也是对象, 浅谈原型链 JS 唯一支持的继承方式是通过原型链继承, 理解好原型链非常重要, 我记录下我的理解 1. 前言 new 出来的实例有 _proto_ 属性, 并 ...

  2. js创建对象的三种方法:文本标识法和构造器函数法和返回对象的函数

    文本标识法和定义变量差不多,像这样 var obj = {name:'HanMM','2':'Dali'}; 函数构造器法  先创建一个对象函数 function Obj() { this.addre ...

  3. 秒懂JS对象、构造器函数和原型对象之间的关系

    学习JS的过程中,想要掌握面向对象的程序设计风格,对象模型(原型和继承)是其中的重点和难点,拜读了各类经典书籍和各位前辈的技术文章,感觉都太过高深,花费了不少时间才搞明白(个人智商是硬伤/(ㄒoㄒ)/ ...

  4. JS对象、构造器函数和原型对象之间的关系

    一.基本概念 1.对象:属性和方法的集合,即变量和函数的封装.每个对象都有一个__proto__属性,指向这个对象的构造函数的原型对象. 2.构造器函数:用于创建对象的函数,通过new关键字生成对象. ...

  5. js中的函数,Date对象,Math对象和数组对象

    函数就是完成某个功能的一组语句,js中的函数由关键字 function + 函数名 + 一组参数定义;函数在定义后可以被重复调用,通常将常用的功能写成一个函数,利用函数可以使代码的组织结构更多清晰. ...

  6. JS中的函数、BOM和DOM操作

     一.JS中的函数 [关于注释] /** [文档注释]:开头两个*.写在函数上方,在调用函数时可以看到文档上方的描述信息. */   // 单行注释 /* 多行注释 */ 1.函数的声明及调用 (1) ...

  7. js 内置函数 内置对象

    1.内置函数 Object Array Boolean Number String Function Date RegExp Error 2.内置对象 Date JSON

  8. 在 JavaScript 中使用构造器函数模拟类

    今天,我们要讲的是在 JavaScript 中使用构造器函数(construcor function)模拟类. 构造器函数简介 你可以使用 ES6 的 class 关键字来实现类,不过我建议你使用传统 ...

  9. 仿String()构造器函数 【总结】

    需求 实现以下方法: 控制台结果: 需求分析: 首先确定new调用的this和什么对象绑定,如果跟默认返回的对象绑定肯定做不到 [ ] 这样的访问,所以要在构造器内部返回一个包装过的数组 1.leng ...

随机推荐

  1. mssql 修改文件逻辑名称

    --查看文件逻辑名SELECT name FROM sys.database_files ALTER DATABASE [本身数据库名称]MODIFY FILE ( NAME = [原错误数据库名称] ...

  2. get请求乱码

    1.get请求不管用什么编码都是乱码, 2.由于http请求最先到达的是容器,所以先要检查容器的unrencodeing <Connector port="80" proto ...

  3. Sql 注意点

    1. Set.Select赋值 使用SELECT语句来替代SET命令的主要优点是:可以在一个操作内同时给多个变量赋值.执行下面的SELECT语句,通过SELECT语句赋值的变量就可以用于任何操作了. ...

  4. ubuntu 配置JDK环境

    /etc/profile中加入以下代码 JAVA_HOME为JDK包解压的路径export JAVA_HOME=/home/exayong/jvm/jdk1.8.0_111 export JRE_HO ...

  5. C# winform中的datagridview控件标头加入checkbox,实现全选功能。

    /// <summary> /// 给DataGridView添加全选 /// </summary> public class AddCheckBoxToDataGridVie ...

  6. oracle 拼接一张表所有字段

    declare t_name varchar2(100) := upper('dba_tab_columns'); cursor c_col is select column_name from db ...

  7. oop、try_except、单例模式

    本节大纲: 面向对象特性:封装.继承.多态.一:多态:python本身是多态,他的参数可以多种类型.可以是字符串.数字.列表等.当传入参数的时候,python可以判断参数的数据类型.而在java C# ...

  8. windows dir改成ls

    习惯了linux下的ls命令,windows的dir用的很不习惯,又不想装cygwin, bash,就想把dir重命名为ls,发现dos下有个命令doskey可以完成该功能.在命令提示符下敲: > ...

  9. PHP Date Function Base

    /**************格式中可使用字母的含义**************/a – "am" 或是 "pm"  A – "AM" 或是 ...

  10. 使用STL离散化

    把原来的数组a复制一份拷贝b 用sort先把数组a排序 用unique消除a里面重复的元素 对于b中的每一个元素,用lower_bound找到它在a中的位置,也就是离散化之后的编号. 没了. #inc ...