`

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();

 

分享到:
评论

相关推荐

    js中继承的几种用法总结(apply,call,prototype)

    在JavaScript中,实现对象继承主要有三种方式:原型链继承(prototype)、构造函数继承和call/apply继承。下面将分别详细介绍这三种继承方式的具体用法和实现原理。 1. 原型链继承(prototype) 原型链继承是...

    理解JavaScript的caller callee call apply

    ### 理解JavaScript中的`caller`...综上所述,理解`caller`、`callee`、`call`、`apply`以及`arguments`对象在JavaScript编程中至关重要,它们不仅增强了函数的灵活性和复用性,还提供了深入分析和调试代码的强大工具。

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

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

    Javascript - 全面理解 caller,callee,call,apply (转载)

    这篇文章将深入探讨四个关键概念:caller、callee、call和apply,它们都是JavaScript函数操作的核心部分,对于理解和使用高级JavaScript编程至关重要。 首先,我们来了解`caller`和`callee`。在JavaScript的函数...

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

    `Array.prototype.slice.apply` 是 JavaScript 中一种巧妙的技巧,它允许我们借用 `Array.prototype.slice` 方法来处理非数组对象,尤其是 `arguments` 对象。`arguments` 是一个伪数组对象,它在每个函数内部可用,...

    javascript中apply/call和bind的使用

    args = Array.prototype.slice.call(arguments, 1); // 从第二个参数开始的所有参数 return function() { self.apply(context, Array.prototype.slice.call(args, 0)); }; }; } ``` 此外,bind()方法可以和...

    详解js中的apply与call的用法.docx

    在JavaScript中,`call`和`apply`是两种非常重要的函数调用方式,它们都用于改变函数执行时的上下文,即改变`this`的指向。这两个方法的主要区别在于它们处理参数的方式。 `call`方法允许你指定一个对象来替代原...

    javascript中call apply 的应用场景

    例如,`Array.prototype.push.call(arguments, value)`可以在`arguments`对象上执行`push`方法,因为`arguments`虽然类似数组,但并不是真正的数组。 3. **模拟私有方法**: JavaScript中没有内置的私有方法机制,...

    Javascript 中的 call 和 apply使用介绍

    JavaScript中的`call`和`apply`是两种非常重要的函数调用方式,它们允许开发者改变函数执行的上下文,即函数内部的`this`值。这两个方法的主要区别在于传递参数的方式。 `call`方法的语法是`call(obj, arg1, arg2, ...

    Javascript中apply、call、bind的巧妙使用

    由于JavaScript中的Object.prototype.toString.call可以返回传入参数的准确类型,我们可以用此来检查一个对象是否为数组: ```javascript function isArray(obj) { return Object.prototype.toString.call(obj) ==...

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

    在JavaScript中,`Function.prototype.apply()` 和 `Function.prototype.call()` 是两种非常重要的方法,它们用于在不同的上下文中调用函数,并允许我们灵活地传递参数。这两个方法的主要区别在于处理参数的方式,但...

    Javascript call和apply区别及使用方法

    `call`接受一系列参数列表,而`apply`则接受一个包含多个参数的数组或`arguments`对象。 #### 作用实例 **类的继承** 使用`call`或`apply`可以实现类的继承。通过调用父类的构造函数,并将子类的实例作为参数传入...

    【JavaScript语言精粹系列】apply的用法

    JavaScript语言精粹系列中,`apply`是一个非常重要的方法,它属于函数对象,是JavaScript中的一个核心特性。本文将深入探讨`apply`的用法及其在实际编程中的应用。 `apply`方法允许我们调用一个函数,并指定一个...

    apply和call方法定义及apply和call方法的区别

    在JavaScript中,`apply`和`call`方法都是Function对象的内置方法,它们的主要作用是改变函数调用时的上下文(即`this`值),并允许我们在不同对象上执行同一方法,从而实现方法的借用。这两者在功能上相似,但参数...

    前端大厂最新面试题-bind_call_apply.docx

    _bind、call、apply 是 JavaScript 中的三个函数方法,用于改变函数的执行上下文,即改变函数中的 this 指向。下面我们将详细讲解这三个方法的使用和区别。 作用 _bind、call、apply 三者都是改变函数执行时的上...

    prototype 1.3 源码解读

    Prototype 是一个轻量级的 JavaScript 库,它简化了 DOM 操作,并提供了一系列便捷的方法来处理对象、数组等基本类型。版本 1.3 相对于之前的 1.2 版本有了不少改进与增强,包括但不限于: - 注释的完善。 - 对象...

    JavaScript中call和apply方法的区别实例分析

    例如,`Array.prototype.push.call` 就是利用 `apply` 来调用数组原型上的方法,改变参数对象(如 `arguments`)。 4. 示例应用: - `currying`(柯里化):柯里化是一种将接受多个参数的函数转化为一系列接受单个...

    javascript 中对象的继承〔转贴〕

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

    JavaScript中apply方法的应用技巧小结

    在这个实现中,`[].shift.apply(arguments)`用来移除数组的第一个元素(即`call`方法中的`this`值),剩下的参数被`apply`传入。 ### 2. 实现`bind` `bind`方法创建一个新的函数,在调用时`this`值被固定为指定的...

    浅谈javascript中的Function和Arguments

    1. **Arguments对象**:当函数被调用时,JavaScript会创建一个`Arguments`对象,它包含了所有传递给函数的参数。`Arguments`对象并不是一个真正的数组,但它有一个`length`属性和索引访问机制,就像数组一样。这意味...

Global site tag (gtag.js) - Google Analytics