`

Javascript基础一(apply, call, arguments, prototype)

 
阅读更多
//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();

 

分享到:
评论

相关推荐

    javascript中apply和call方法的作用及区别说明

    1、call,apply都属于Function.prototype的一个方法,它是JavaScript引擎内在实现的,因为属于Function.prototype,所以每个Function对象实例(就是每个方法)都有call,apply属性。既然作为方法的属性,那它们的使用...

    javascript中call apply 的应用场景

    说call和apply函数可以改变作用域,但还是无法非常透彻的理解改变作用域主要是为了解决什么问题,有没有替代方案,或者 这2个函数主要为了解决什么问题,应用场景,何时使用最合适,每次读到这样的代码就晕了,一下...

    javascript 中对象的继承〔转贴〕

    1、关于javascript的apply和call函数 prototype.js中用了大量的apply和call函数,不注意会造成理解偏差。 官方解释:应用某一对象的一个方法,用另一个对象替换当前对象。 apply与call的区别是第二个参数不同。apply...

    JavaScript中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...

    JavaScript函数apply()和call()用法与异同分析

    这两个方法的作用是在函数调用时改变函数的执行上下文,也就是函数内的this,apply()方法接收两个参数,一个是在其中运行函数的作用域,另一个可以是arguments对象,也可以是参数数组。 call()方法与apply()方法的作

    Array.prototype.slice.apply的使用方法

    arguments在JavaScript语法中是函数特有的一个对象属性(Arguments对象),用来引用调用该函数时传递的实际参数。

    Function.prototype.apply()与Function.prototype.call()小结

    JavaScript 中,某个函数的参数数量是不固定的,因此要说适用条件的话,当你的参数是明确知道数量时,用 call,而不确定的时候,用 apply,然后把参数 push 进数组传递进去。当参数数量不确定时,函数内部也可以通过...

    Javascript数组操作高级心得整理

    第一章JavaScript基础 1. 如何实现JavaScript 4 (1) 如何把JavaScript代码放到HTML页面里 4  使用[removed]标签,直接在HTML代码里加入JavaScript代码 4  使用[removed]调用外部的JavaScript(.js文件) 4  如何...

    JavaScript完全自学宝典 源代码

    2.16.html apply方法与call方法的使用。 第3章(\c03) 示例描述:学习JavaScript的高级语法。 3.1.html 连接字符串。 3.2.html indexOf()函数与lastIndexOf()函数。 3.3.html 截取字符串的子串。 ...

    JavaScript权威指南

    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 ...

    微软JavaScript手册

    apply 方法 应用对象的一个方法,用当前对象代替另一对象。 arguments 属性 返回一个包含传递给当前执行函数的每个参数的数组。 Array 对象 提供对创建任何数据类型的数组的支持。 asin 方法 返回一个数的反正弦...

    javascript文档

    apply 方法 应用对象的一个方法,用当前对象代替另一对象。 arguments 属性 返回一个包含传递给当前执行函数的每个参数的数组。 Array 对象 提供对创建任何数据类型的数组的支持。 asin 方法 返回一个数的反正弦...

    JavaScript-skills

    Constructor = [].shift.call(arguments); obj.__proto__ = Constructor.prototype; var ret = Constructor.apply(obj, arguments); return typeof ret === 'object' ? ret : obj; } 注意如果返回值是一个基本...

    ES6转JavaScriptesnext.zip

    console.log(join.apply(null, ['-'].concat($__Array$prototype$slice.call([415, 555, 1212])))); 使用方法: var transpiler = require('es6-module-transpiler'); var Container = transpiler....

    JavaScript函数内部属性和函数方法实例详解

    函数方法(非继承)包括:apply()和call() 继承而来的函数方法:bind()、toString()、toLocaleString()、valueOf() 其他的目前不熟,后面再补充 1. 函数内部属性 在函数内部,有两个特殊的对象,arguments和this。...

    js设计模式源码

    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....

    javascript语言参考+教程 CHM

    Jscript 基础; 什么是 JScript?; 编写 JScript 代码; JScript 的变量; JScript 的数据类型; JScript 的运算符; 控制程序的流程; JScript 函数; Jscript对象; 创建自己的对象; 内部对象; JScript 保留...

    js使用小技巧

    Javascript小技巧一箩筐 事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElement.setCapture(); event.srcElement.releaseCapture(); 事件按键 event.keyCode ...

Global site tag (gtag.js) - Google Analytics