本文是金旭亮老师网易云课堂的课程笔记,记录下来,以供备忘. 概述 使用对象字面量,或者向空对象中动态地添加新成员,是最简单易用的对象创建方法. 然而,除了这两种常用的对象创建方式,JavaScript还提供了其他方法创建对象. 1).使用工厂函数创建对象 我们可以编写一个函数,此函数的功能就是创建对象,可将其称为“对象工厂方法”. //工厂函数 function createPerson(name, age, job) { var o = new Object(); o.name = name;…
转自:http://www.cnblogs.com/Jener/p/5920963.html ★概述:         使用对象字面量,或者向空对象中动态地添加新成员,是最简单易用的对象创建方法.然而,除了这两种常用的对象创建方式,JavaScript还提供了其他方法创建对象.   ★使用工厂函数创建对象     我们可以编写一个函数,此函数的功能就是创建对象,可以将其称为“对象工厂方法”.   ★ 定义对象“构造”函数   注意点:对象构造函数首字母大写:内部使用this关键字给对象添加成员:…
本文是金旭亮老师网易云课堂的课程笔记,记录下来,以供备忘. 对象的创建 JavaScript对象有两种类型   1).Native:在ECMAScript标准中定义和描述,包括JavaScript内置对象(数组,日期对象等)和用户自定义对象.   2).Host:在主机环境(如浏览器)中实现并提供给开发者使用,比如windows对象和所有的DOM对象       对象的含义 Object is an unordered collection of properties each of which…
一.对象(Object) 1.1 认识对象 对象在JS中狭义对象.广义对象两种. 广义:相当于宏观概念,是狭义内容的升华,高度的提升,范围的拓展.狭义:相当于微观概念,什么是“狭”?因为内容狭隘具体,范围窄所以称为“狭” l 狭义对象 就是用{}这种字面量的形式定义的对象,它是一组属性的无序集合 var obj = { name : "小明", age : 12, sex : "男", hobby : ["足球","刺绣",&…
17.对象 属性:描述对象的信息  方法:描述对象的行为  封装:只关心输入和输出(不管过程如何实现) ü 对象的分类: 内置对象(原生对象): 就是JavaScript语言预定义的对象(如String/Number). 宿主对象: 一般由浏览器环境提供实现,主要分为 BOM 和 DOM. 自定义对象: 就是由开发人员自主创建的对象. ü 对象的创建: Ø 初始化器方式 var 对象名 = {         属性名 : 属性值 ,         方法名 : function( ){方法体} …
前言:用了这么久js,对于它的原型链一直有种模糊的不确切感,很不爽,隧解析之. 本文主要解决的问题有以下三个: (1)constructor 和 prototype 以及实例之间啥关系? (2)prototype是啥,__proto__又是啥,他们之间啥关系? (3)如果改变一个 constructor 的 prototype,他的实例会发生什么改变? ok,下面一个一个解决. (1)constructor 和 prototype 以及实例对象三者之间啥关系? 举例: 如上,当我们创建一个函数,…
前言:用了这么久js,对于它的原型链一直有种模糊的不确切感,很不爽,隧解析之. 本文主要解决的问题有以下三个: (1)constructor 和 prototype 以及实例之间啥关系? (2)prototype是啥,__proto__又是啥,他们之间啥关系? (3)如果改变一个 constructor 的 prototype,他的实例会发生什么改变? ok,下面一个一个解决. (1)constructor 和 prototype 以及实例对象三者之间啥关系? 举例: 如上,当我们创建一个函数,…
所谓工厂函数,就是指这些内建函数都是类对象,当你调用他们时,实际上是创建了一个类实例. 在学习jQuery的时候,我们经常会看到“工厂函数”这个概念,那么究竟什么是“工厂函数”呢?我们来看看概念,“所谓工厂函数,就是指这些内建函数都是类对象,当你调用他们时,实际上是创建了一个类实例”.意思就是当我调用这个函数,实际上是先利用类创建了一个对象,然后返回这个对象.由于Javascript本身不是严格的面向对象的语言(不包含类),实际上来说,Javascript并没有严格的“工厂函数”,但是在Java…
在cnblog上看到一篇文章,讲解JS中的构造函数和工厂函数,觉得讲的真好 JavaScript中的工厂函数和构造函数都能用来创建一个对象,我们可以来看看下面的例子 构造函数 function createStudent(id,name,class,grade){ var o = new Object(); o.id = id; o.name = name; o.class = class; o.grade = grade; o.GetInfo = function(){ console.log…
如果你从其他语言转到javascript语言的开发,你会发现有很多让你晕掉的术语,其中工厂函数(factory function)和构造函数(constructor function)就是其中的一个.本文试图理顺这两者之间的区别. Factory functions 工厂函数是将返回一个新的object的任何不是类或者构造函数的函数.在js中,任何函数都能够返回一个object.如果我们不是通过new function()的方式来获得这个对象的,那么她就是一个factory工厂函数. funct…
1.面向对象和面向过程的区别 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了: 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为.(使用对象时,只关注对象提供的功能,不关注其内部细节)  面向对象是一种思想,并非只有编程中能用到,任何事都可以用到 例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1.开始游戏,2.黑子先走,3.绘制画面,4.判断输赢,5.…
函数 函数是JavaScript中特殊的对象,对函数执行typeof运算会返回字符串"function",因为函数也是对象,他们可以拥有属性和方法. 静态方法 函数在JS中定义了类的名字,任何添加到函数的属性都是类字段和类方法(类比Java中类的static variable 和 static method),下面代码起到Java里面static method的效果: var foo = function(){}; foo.printLog = function(){ if (argu…
本篇体验通过硬编码.工厂模式.构造函数来创建JavaScript对象. □ 通过硬编码创建JavaScript对象 当需要创建一个JavaScript对象时,我们可能这样写: var person = { firstName: "Darren", lastName: "Ji", getFullName: function() { return this.firstName + " " + this.lastName; } }; 如果需要创建2个结…
精简的美丽...... javascript prototype 对象 函数 在javascript中我们都知道创建一个对象使用如下代码var x = {}对象可以拥有属性和方法var x = {    value : 0,    add : function(a,b){        return a + b;    }} 而创建一个函数时,使用var fx = function(){}    <func1>或function fx(){}            <func2>…
export default {props: { slides:{ type:Array, default:[] } },这是我的代码 报错是Invalid default value for prop "slides": Props with type Object/Array must use a factory function to return the default value. // 数组/对象的默认值应当由一个工厂函数返回 // 这是文档里的例子,返回对象 propE:…
接受配置对象作为函数參数 尽管保持函数接受的參数的顺序非常重要,可是当函数可以接受的參数达到一定数量时.也会让用户非常头疼: var alert = new Alert(100, 75, 300, 200, "Error", message, "blue", "white", "black", "error", true); 随着函数的不断重构和进化.它可以接受的參数或许会越来越多.终于就像上面的样例那样.…
Invalid default value for prop "value": Props with type Object/Array must use a factory function to return the default value.(百度翻译:PROP“值”的默认缺省值:Type对象/数组的PROPS必须使用工厂函数返回默认值.) props default 数组/对象的默认值应当由一个工厂函数返回…
函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块.好处:在出现大量程序相同的时候,可以封装为一个function,这样只用调用一次,就能执行很多语句.(1)语法:函数就是包裹在花括号中的代码块,前面使用了关键词 function:eg:function myFunction(){ //执行的代码}//调用.myFunction();<button onclick="myFunction()">点击</button>(2)参数function小括号中的参…
一.类型 1.JavaScript中分为值类型(string/boolean/null/number/undefind).引用类型(数组.对象.函数): 2.数组.函数.对象都是对象: 对象是由函数创建的,每个对象都有_proto_属性指向构造函数的原型对象(f1._proto===Fn.prototype) eg: function Fn(){}; var f1 = new Fn(); Fn.prototype也是个对象,也有__proto__属性,它是函数Object创建,即(Fn.prot…
export default {props: { xAxisData: {   type: Array,   default: [] }, },这是我的代码 报错是Invalid default value for prop "slides": Props with type Object/Array must use a factory function to return the default value. // 数组/对象的默认值应当由一个工厂函数返回   propE: { t…
1.对象 在javascript里,一切都是对象,包括函数自身(不是指具体的函数,而是指"Function"这个东东).例如: var fun1=new Function("num1","num2","alert(num1+num2)"); 这时,fun1是一个函数的"实例",或者说函数对象,所以当然是一个对象.fun1.__proto__指向Function.prototype.但同时,Function也…
一.闭包(Closure) 1.1.闭包相关的问题 请在页面中放10个div,每个div中放入字母a-j,当点击每一个div时显示索引号,如第1个div显示0,第10个显示9:方法:找到所有的div,for循环绑定事件. 示例代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>闭包</title> <style type="…
工厂函数,顾名思义,就是通过一个"工厂的加工" 来创建一个对象的函数 //工厂函数 function createPerson(name,sex){ sex = sex == '男' ? '女' : sex // '加工' return { name:name, sex:sex }; } var p =createPerson('张三','男'); 这种操作在需要创建多个相似对象时可以有效地减少重复代码,但是这样有个缺点就是,每次调用工厂函数创建的对象都是独立的object,不存在继承关系,显然…
对象参考手册 Array Boolean Date Math Number String RegExp Global 前言 在js中什么都是对象(包括函数). 函数是用来实现具体功能的代码,用一种方式把他们组织起来,就是函数. 对象是有属性和方法的一个东西,在对象中的函数就变成了方法. this 在方法中,this 指的是所有者对象 单独的情况下,this 指的是全局对象:在浏览器窗口中,全局对象是 [object Window] 在函数中,this 指的是全局对象:function myFun…
JavaScript对象 在 JavaScript中,几乎所有的事物都是对象.JavaScript 对象是拥有属性和方法的数据. var car = {type:"Fiat", model:500, color:"white"}; 可以说 "JavaScript 对象是变量的容器".但是,我们通常认为 "JavaScript 对象是键值对的容器". 键值对通常写法为 name : value (键与值以冒号分割).键值对在 J…
JavaScript函数:使用关键字function定义,也可以使用内置的JavaScript函数构造器定义 匿名函数: 函数表达式可以存储在变量中,并且该变量也可以作为函数使用. 实际上是匿名函数. <body> <p>函数存储在变量后,变量可作为函数使用:</p> <p id="demo"></p> <script> var x = function(a,b){return a+b; }; document.g…
一.前言 放了个元旦,休息了三天,加上春运抢票一系列事情的冲击,我感觉我的心已经飞了.确实应该收收心,之前计划的学习任务也严重脱节了:我恨不得打死我自己. 在上篇博客中,笔记记录到了关于构造函数方面的一些写法和用法,这篇博客,会从原书中数组直接量开始,自己读了下之前的博客,还是有点照搬概念的意思,想了下,还是得简化概念,按照自己的思路去写,那么开始. 二.数组直接量 概要:创建数组的两种方式,Array()创建的隐性问题 在JS中,数组也是对象,我们可以通过内置构造函数Array()创建数组,也…
一.函数声明和表达式 函数声明: function test() {}; test();    //运行正常 function test() {}; 函数表达式: var test = function() {}; test;    //undefined test();   //TypeError var test = function() {}; 命名函数的赋值表达式: var test = function bar() { test();    //正常运行 }; test();    /…
1. 构造函数原型对象:prototype ① 构造函数独立创建对象,消耗性能 function Person(name) { this.name = name; this.sayHello = function () { console.log("Hello,my name is " + this.name) } } var P1 = new Person("Tom"); var P2 = new Person("Tom"); P1.sayHe…
这个星期刚刚学的JQuery,下面我来说说我学的这几个例子 jQuery是JavaScript的一个程序库. Jquery的工厂函数$(): 在Jquery中 $符号等价于jquery,作用是将DOM对象转化为Jquery对象. 下面我来写几个定时器的案列 定时函数:setTimeout()用于在指定的毫秒后调用函数或者计算表达式 语法:setTimeout(“调用的函数名称”,等待的毫秒数) 下面我来使用这个函数实现3秒后弹出对话框 <script type="text/javascri…