//javascript: apply, call, arguments的概念
var Class = function(){
var klass = function(){
//apply: http://www.cnblogs.com/fighting_cp/archive/2010/09/20/1831844.html
//arguments: http://www.cnblogs.com/Fskjb/archive/2011/10/27/2227111.html
this.init.apply(this,arguments);
};
klass.prototype.init = function(){};
//给"类库"添加方法
klass.fn = klass.prototype;
klass.extend = function(obj){
var extended = obj.extended;
for(var i in obj){
//给类添加属性
klass[i] = obj[i];
//给实例添加属性
//klass.fn[i] = obj[i];
}
if(extended)extended(klass);
}
return klass;
}
var Person = new Class();
Person.prototype.init = function(){
alert(arguments[0] + arguments[1]);
this.breath();
};
//给类添加函数
Person.eat = function(id){
alert("find");
}
Person.fn = Person.prototype;
Person.fn.breath = function(){
alert("breath");
}
Person.extend({
run: function(){
alert("run");
}
});
var person = new Person(1,2);
person.run();
分享到:
相关推荐
1、call,apply都属于Function.prototype的一个方法,它是JavaScript引擎内在实现的,因为属于Function.prototype,所以每个Function对象实例(就是每个方法)都有call,apply属性。既然作为方法的属性,那它们的使用...
说call和apply函数可以改变作用域,但还是无法非常透彻的理解改变作用域主要是为了解决什么问题,有没有替代方案,或者 这2个函数主要为了解决什么问题,应用场景,何时使用最合适,每次读到这样的代码就晕了,一下...
1、关于javascript的apply和call函数 prototype.js中用了大量的apply和call函数,不注意会造成理解偏差。 官方解释:应用某一对象的一个方法,用另一个对象替换当前对象。 apply与call的区别是第二个参数不同。apply...
一、apply实现call Function.prototype.call = function () { var ctx = [].shift.apply(arguments) return this.apply(ctx, arguments) } 二、apply实现bind Function.prototype.bind = function () { var ctx...
这两个方法的作用是在函数调用时改变函数的执行上下文,也就是函数内的this,apply()方法接收两个参数,一个是在其中运行函数的作用域,另一个可以是arguments对象,也可以是参数数组。 call()方法与apply()方法的作
arguments在JavaScript语法中是函数特有的一个对象属性(Arguments对象),用来引用调用该函数时传递的实际参数。
JavaScript 中,某个函数的参数数量是不固定的,因此要说适用条件的话,当你的参数是明确知道数量时,用 call,而不确定的时候,用 apply,然后把参数 push 进数组传递进去。当参数数量不确定时,函数内部也可以通过...
第一章JavaScript基础 1. 如何实现JavaScript 4 (1) 如何把JavaScript代码放到HTML页面里 4 使用[removed]标签,直接在HTML代码里加入JavaScript代码 4 使用[removed]调用外部的JavaScript(.js文件) 4 如何...
2.16.html apply方法与call方法的使用。 第3章(\c03) 示例描述:学习JavaScript的高级语法。 3.1.html 连接字符串。 3.2.html indexOf()函数与lastIndexOf()函数。 3.3.html 截取字符串的子串。 ...
JavaScript权威指南 犀牛书 Chapter 1. Introduction to JavaScript Section 1.1. JavaScript Myths Section 1.2. Versions of JavaScript Section 1.3. Client-Side JavaScript Section 1.4. JavaScript ...
apply 方法 应用对象的一个方法,用当前对象代替另一对象。 arguments 属性 返回一个包含传递给当前执行函数的每个参数的数组。 Array 对象 提供对创建任何数据类型的数组的支持。 asin 方法 返回一个数的反正弦...
apply 方法 应用对象的一个方法,用当前对象代替另一对象。 arguments 属性 返回一个包含传递给当前执行函数的每个参数的数组。 Array 对象 提供对创建任何数据类型的数组的支持。 asin 方法 返回一个数的反正弦...
Constructor = [].shift.call(arguments); obj.__proto__ = Constructor.prototype; var ret = Constructor.apply(obj, arguments); return typeof ret === 'object' ? ret : obj; } 注意如果返回值是一个基本...
console.log(join.apply(null, ['-'].concat($__Array$prototype$slice.call([415, 555, 1212])))); 使用方法: var transpiler = require('es6-module-transpiler'); var Container = transpiler....
函数方法(非继承)包括:apply()和call() 继承而来的函数方法:bind()、toString()、toLocaleString()、valueOf() 其他的目前不熟,后面再补充 1. 函数内部属性 在函数内部,有两个特殊的对象,arguments和this。...
args = Array.prototype.slice.call(arguments, 1); for(var i = 0, l = topics[topic].length; i ; i++){ var subscription = topics[topic][i]; subscription.callback.apply(subscription....
Jscript 基础; 什么是 JScript?; 编写 JScript 代码; JScript 的变量; JScript 的数据类型; JScript 的运算符; 控制程序的流程; JScript 函数; Jscript对象; 创建自己的对象; 内部对象; JScript 保留...
Javascript小技巧一箩筐 事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElement.setCapture(); event.srcElement.releaseCapture(); 事件按键 event.keyCode ...