- 浏览: 207625 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (291)
- ERP (3)
- JSP/Servlet (13)
- DB (8)
- MongoDB (2)
- Python (3)
- Maven (8)
- GIT (1)
- Windows (8)
- Java (24)
- Informatica (2)
- PHP (1)
- Javascript (25)
- Tomcat (2)
- spring (13)
- HTML5 (11)
- Nginx (2)
- NodeJS (6)
- Linux (40)
- AngularJS (1)
- Android (3)
- Selenium (3)
- 理财 (6)
- 工作心得 (9)
- SQLServer (10)
- Hibernate/JPA (6)
- Bootstrap (1)
- C# (3)
- MySql (4)
- highchart (1)
- hadoop (5)
- ZooKeeper (2)
- Hbase (8)
- Avro (2)
- Hive (2)
- Flume (5)
- Kafka (11)
- Sqoop (3)
- Pig (1)
- Spark (1)
- Storm (2)
- Redis (1)
- Memcached (1)
- Dubbo (2)
- Phoenix (2)
最新评论
-
一尾金鱼:
可以作为查询手册了,页面布局也好~
JSP EL -
darkgost:
您好,我按照你的方法,在Service1.cs中添加如下代码: ...
C#Windows 服务制作安装删除. 用户注销后,程序继续运行
1. length属性
length代表函数定义时参数(形参)的个数。arguement.length代码实际传入参数(实参)的个数
2.prototype 属性
每个函数都包含一个prototype属性,它指向一个对象的应用,这个对象是原型对象。当将函数用作构造函数时,新创建的对象会从原型对象上继承属性和方法。
3. call() 和 apply()方法
语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]])
定义:调用一个对象的一个方法,以另一个对象替换当前对象。
说明:
call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。
如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。
语法:apply([thisObj[,argArray]])
定义:应用某一对象的一个方法,用另一个对象替换当前对象。
说明:
如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。
如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。
说了call ,当然还有 apply,这两个方法基本上是一个意思,区别在于 call 的第二个参数可以是任意类型,而apply的第二个参数必须是数组,也可以是arguments.
4 bind()方法
它的主要作用是将函数绑定到某个对象。当在函数f()上调用bind()方法并传入一个对象o作为参数,这个方法将返回一个新的函数。(以函数调用方式)调用新的函数将会把原始的函数f()当做o的方法来调用,传入新函数的任何实参都将传入原始函数。
length代表函数定义时参数(形参)的个数。arguement.length代码实际传入参数(实参)的个数
function check(args){ var actual = args.length; var expected = args.callee.length; if(actual!==expected){ document.writeln('Execped ' + expected + ', got ' +actual); //throw Error('Execped ' + expected+ ', got ' +actual); //return 'Execped ' + expected+ ', got ' +actual; } } function add3(x,y,z){ check(arguments); return x+y+z; //再执行后面的逻辑 } add3(2,4,6,8); //=>Execped 3, got 4
2.prototype 属性
每个函数都包含一个prototype属性,它指向一个对象的应用,这个对象是原型对象。当将函数用作构造函数时,新创建的对象会从原型对象上继承属性和方法。
//使用prototype扩充Javascript的类 /*Javascript基于原型机制是动态的:对象从其原型继承属性,如果创建对象之后原型的属性发生改变,也会影响到继承这个原型的所有 实例。这意味这我们可以通过给原型添加新方法来扩充Javascript。*/ //这个方法用于去除字符串开头和结尾的空格 String.prototype.trim=String.prototype.trim || function(){ if(!this) return this; //空字符串不做处理 return this.replace(/^\s+|\s+$/g,''); }; Function.prototype.getName=function(){ //如果函数中有name属性就返回name的值,否则取'function'和'('之间的字符 return this.name || this.toString().match('/function\s*([^()*]\(')[1]; }; var ggg=' sggg '; document.writeln(ggg.trim()+ggg.trim()); //=> sgggsggg function funct(){}; document.writeln(funct.getName()); //=>funct
3. call() 和 apply()方法
语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]])
定义:调用一个对象的一个方法,以另一个对象替换当前对象。
说明:
call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。
如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。
语法:apply([thisObj[,argArray]])
定义:应用某一对象的一个方法,用另一个对象替换当前对象。
说明:
如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。
如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。
//使用两个 call 就实现多重继承了 function bird(){ this.fly=function(){ document.writeln('fly...'); } } function human(){ this.speak=function(){ document.writeln('speak...'); } } function animal(){ bird.call(this); //将bird的方法放到this(此时代表animal)上执行 human.call(this); //将human的方法放到this(此时代表animal)上执行 } var niaoren =new animal(); niaoren.fly(); niaoren.speak(); //当然,js的继承还有其他方法,例如使用原型链,这个不属于本文的范畴,只是在此说明call 的用法。
说了call ,当然还有 apply,这两个方法基本上是一个意思,区别在于 call 的第二个参数可以是任意类型,而apply的第二个参数必须是数组,也可以是arguments.
4 bind()方法
它的主要作用是将函数绑定到某个对象。当在函数f()上调用bind()方法并传入一个对象o作为参数,这个方法将返回一个新的函数。(以函数调用方式)调用新的函数将会把原始的函数f()当做o的方法来调用,传入新函数的任何实参都将传入原始函数。
function f(y){return this.x+y}; //待绑定的函数 var o={x:1}; //将要绑定的对象 var g=f.bind(o); document.writeln(g(2)); //=>3 //通过g(2)来调用o.f(2) //另一种绑定 function bind(f,o){ if(f.bind) return f.bind(o); //如果bind()存在,使用bind(); else return function(){ //否则这样绑定 return f.apply(o, arguments); }; }
发表评论
-
JSON数据与JavaScript对象转换
2014-12-21 21:56 491Json 转js使用JSON.parse(txt), js转J ... -
类函数, 原型对象 与 构造方法之间的关系
2014-08-09 18:23 447var F= function(){}; //这是一个类函 ... -
Javascript 识别对象的类型
2014-06-28 18:43 444/* *以字符串形式返回值的类型 */ func ... -
Javascript 函数的特殊用法
2014-06-28 18:09 526函数的可变参数 function add(a, b, /*op ... -
Javascript 调用Javascript函数的四种方式
2014-06-28 17:55 5251. 做为函数. 最普通的函数调用方式是函数调用。在非严格模 ... -
Javascript 对象序列化与反序列化
2014-06-25 19:30 546document.writeln(JSON.stringi ... -
Javascript 对象的三属性
2014-06-25 18:11 524先定义对象 function Person(name,ag ... -
Javascript 属性的特性
2014-06-25 16:30 597Javascript 属性有四个特性: configurab ... -
属性的遍历,删除,检测
2014-06-24 20:23 402先定义三种不同类型的属性(方法也可当作属性来看待) // ... -
Javascript 创建对象的四种方法,类的三种属性,三种方法
2014-06-24 15:57 5361. 使用Jeson创建新对象 v ... -
Javascript window 中的其它对象
2014-02-04 09:42 523window 中的其它对象 1.location locati ... -
Javascript window 对象+ 父子窗口之间相互操作
2014-02-03 18:58 829例1 用window.open()打开的父子窗口 test.h ... -
Javascript window 对象 + 浮动广告
2014-02-03 17:13 500window 浏览器窗口对象, 不用创建就能使用 1.属性 ... -
Javascript事件对象+鼠标拖动实例
2014-02-03 12:45 637window.event 属性: 1.srcElement 获 ... -
Javascript事件对象+贪吃蛇
2014-02-03 10:13 531事件对象: http://www.w3school.com.c ... -
Javascript事件操作
2014-02-02 19:21 581http://www.w3school.com.cn/html ... -
Javascript 获取DOM对象
2014-02-02 16:11 528Javascript 通过以下三种方式获取DOM对象 方法 ... -
Javascript 实例-- 滑动菜单
2014-02-02 15:07 519<html> <head> & ... -
Javascript 实例--全选反选
2014-02-02 12:56 502<html> <head></ ... -
Javascript 正则表达式
2014-01-31 22:43 482正则表达式语法 \ 将下一个字符标记为一个特殊字符、或一个原 ...
相关推荐
构造函数模式的核心在于使用函数来创建具有相似属性和方法的对象。在JavaScript中,函数可以作为构造函数来调用,通过`new`关键字创建一个新的实例。这种模式允许我们创建自定义类型的对象,而不仅仅是使用内置类型...
而实例则是使用构造函数创建的具体对象,每个实例都有自己的属性值,但都共享构造函数中定义的方法。 2. 构造函数创建实例的过程: 当我们使用new操作符调用构造函数时,以下步骤会发生: (1)首先创建一个新的...
而《JavaScript函数式.zip》可能是一份关于JavaScript函数式编程的资料集合,函数式编程是一种编程范式,强调使用函数和避免改变状态。其中可能涵盖以下知识点: 1. **纯函数**:理解纯函数的定义,即给定相同的...
本文将深入探讨JavaScript中的构造函数以及如何在构造函数中返回一个对象。在JavaScript编程中,构造函数是一种特殊类型的函数,用于创建和初始化特定类型的新对象。通常情况下,构造函数内部不直接返回值,而是通过...
在构造函数中,this关键字指向新创建的对象实例。而在普通函数中,如果没有明确指定this,则在严格模式下,this是undefined,在非严格模式下,this指向全局对象(在浏览器中是window对象)。 使用new关键字调用构造...
JavaScript 1.8.5 英文第四章 数组与函数函数属性,方法和构造函数
- 如果构造函数中有大量非静态的方法定义,则每个实例都会拥有这些方法的独立副本,这会消耗更多的内存。 - 当需要添加新方法时,通常需要通过原型对象来实现,而不是直接在构造函数内部定义。 #### 总结 通过...
在JavaScript中,构造函数通常用于初始化新创建的对象的属性和方法。 - **C#中的构造函数**: - 名称必须与类名相同。 - 没有返回类型。 - 用于初始化对象的状态。 - 通过`new`关键字自动调用。 - 可以定义多...
真正的原因是:一个对象的constructor是它的构造函数的prototype.constructor,而每一个函数都有一个prototype,默认情况下,这个prototype有一个constructor属性,指向的是它自己。 我觉得Javascript的设计本意是让...
本文将详细解释JavaScript中构造函数中公有、私有特权成员以及静态成员的定义和使用方法。 构造函数中的成员可以被分为公有成员和私有成员。公有成员指的是那些可以被对象外部访问的属性和方法,而私有成员则是只能...
这是一种有效的方式,比在构造函数中直接定义方法效率更高,因为它避免了每个实例都包含方法的副本。然而,在处理大量方法时,通常会用对象字面量的方式直接替换原型对象,这种方式更简洁,但会丢失constructor属性...
构造函数用于创建新对象,而原型则定义了对象的行为和属性。 ```javascript function Person(name) { this.name = name; } Person.prototype.greet = function() { console.log(`Hello, my name is ${this.name}`...
在深入理解JavaScript的过程中,构造函数和原型对象是两个核心概念。JavaScript是一种基于对象(Object-based)和原型(Prototype-based)的语言,其对象模型与传统的基于类(Class-based)语言有所不同。理解构造...
总结来说,JavaScript中的构造函数是构建复杂对象和实现面向对象特性的重要工具。理解它们的工作原理,以及如何有效地使用构造函数,对于提升JavaScript编程能力至关重要。通过合理地使用构造函数,我们可以创建可...
JavaScript的灵活性使得函数可以作为变量、对象的方法甚至构造函数使用。理解函数的原型链和闭包对于深入掌握JavaScript至关重要。 首先,让我们看看函数的定义方式。在JavaScript中,我们可以使用`function`关键字...
在JavaScript中,类(Class)、对象(Object)和构造函数(Constructor)是面向对象编程的基础。这篇文章将深入探讨这三个概念,以及如何实现类的继承。 首先,让我们理解什么是JavaScript中的对象。在JavaScript中...
首先,JavaScript函数是一种对象,这使得它们拥有对象的所有属性和方法。函数对象连接到Function.prototype,而这个对象本身又连接到Object.prototype。在创建函数时,JavaScript引擎会为每个函数添加两个隐藏属性:...
在JavaScript编程中,构造函数模式和原型模式是两种常见的面向对象编程(OOP)方式。这两种模式各有优势,结合使用能够更好地实现代码复用和封装,提高代码的可维护性和扩展性。 #### 二、构造函数模式 构造函数模式...
每个对象都有一个 `__proto__` 属性,指向其构造函数的原型对象,原型对象又有一个 `__proto__` 属性,直到找到 `null`,形成一条链。我们可以通过 `prototype` 属性来修改构造函数的原型,从而影响实例对象。 了解...