javascript:apply的前面不是应该用函数吗?这里怎么放了个对象?

问题描述

//把this转换为静态指针,参数o表示预设置this所指代的对象,返回一个闭包函数Function.prototype.pointTo=function(o){    var _this=this;//存储当前函数对象    return function(){//一个闭包函数        return _this.apply(o,arguments);//执行当前函数并把当前函数的作用域强制设置为指定对象    }}_this.apply(o,arguments);这个是什么情况?_this是对象,o也是对象,没见过这种用法啊

解决方案

举个例子function a(i) { //自定义一个函数a alert(this.message + ",," + i);}var obj = { //自定义一个对象a message : "hello"};//此处是重点 var newFunc = a.pointTo(obj);Function.prototype.pointTo=function(o){ var _this=this;//this就是a函数本身 return function(){ //newFunc就等于这个 return _this.apply(o,arguments); }}newFunc(123321); //当调用这个时 其实相当于 obj.a(123321); 所以在a函数中就能this.message得到obj对象的属性即上边说的//执行当前函数并把当前函数的作用域强制设置为指定对象

时间: 2024-11-05 14:57:28

javascript:apply的前面不是应该用函数吗?这里怎么放了个对象?的相关文章

python通过apply使用元祖和列表调用函数实例

  本文实例讲述了python通过apply使用元祖和列表调用函数的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 def my_fuc(a, b): print a, b atuple=(30,10) alist= ['Hello','World!'] apply(my_fuc,atuple) apply(my_fuc,alist) 运行结果如下: ? 1 2 30 10 Hello World! 希望本文所述对大家的Python程序设计有所帮助.

JavaScript子窗口调用父窗口变量和函数的方法_javascript技巧

本文实例讲述了JavaScript子窗口调用父窗口变量和函数的方法.分享给大家供大家参考.具体如下: 示例1:子窗口是新打开的窗口 父窗口: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns=" http://www.w3.

基于JavaScript实现一定时间后去执行一个函数_javascript技巧

在实际需要中可能需要规定在指定的时间之后再去执行一个函数以达成期望的目的,这也就是一个定时器效果,恰好在js中就已经给定了这样的一个函数setTimeout(),下面先介绍一下次函数的 用法: 语法:  复制代码 代码如下: setTimeout(code,interval) 此函数能够规定在指定的在指定的事件之后去执行一段指定代码,此代码只执行一次. setTimeout()函数具有两个参数,第一个参数规定要执行的执行代码,第二个参数规定在多长时间后去执行代码,单位是毫秒. 代码实例: <!D

javascript apply用法

funObj.apply([thisObj[,argArray]]) 应用某一对象的一个方法,用另一个对象替换当前对象. functionObj的方法执行时,函数中的this对象会被thisObj替换掉.   thisObj 可选项.将被用作当前对象的对象. argArray 可选项.将被传递给该函数的参数数组.   //apply在对象继承方面的应用,不使用prototype,隐式的将父对象属性赋给了子对象  代码如下 复制代码 function par(name) { this.parnam

javascript的原型和作用域(2) 函数和对象的关系

上文(理解javascript原型和作用域系列(1)--一切都是对象)已经提到,函数就是对象的一种,因为通过instanceof函数可以判断. var fn = function () { }; console.log(fn instanceof Object);  // true 对!函数是一种对象,但是函数却不像数组一样--你可以说数组是对象的一种,因为数组就像是对象的一个子集一样.但是函数与对象之间,却不仅仅是一种包含和被包含的关系,函数和对象之间的关系比较复杂,甚至有一点鸡生蛋蛋生鸡的逻

javascript 基础篇2 数据类型,语句,函数_基础知识

写内容之前废话一句:因为旧版有些浏览器不支持javascript脚本,遇到script结点,当做普通内容输出了,所以有时候为了让版本兼容,会在script结点里的内容写上注释符号,这样的话在旧版里虽然程序会失效,但是不会出现我们的代码,类似于这样(请忽略括号以及括号里的东西): 复制代码 代码如下: <script type="text/javascript"> <!-- (注意,这里必须换行) xxxxxx; --> (这一行也不可以写东西.) </sc

javascript 一个自定义长度的文本自动换行的函数_javascript技巧

很多朋友在制作网页过程中总是发现某些时候一些英文会把原来好好的表格撑开而导致变形,虽然可以使用style="table-layout:fixed;word-wrap:break-word;word-break:break-all" 来解决这个问题,但有些时候会导致内容显示不完整而被隐藏了起来,并没有做到自动换行的效果. 于是偶就想写一个这样的函数来修补这个缺陷,这个函数很简单,但这里只是提供一种思路来解决这个问题. function fnAddBr(id, iPerLineLen){.

《JavaScript应用程序设计》一一2.11 多态函数

2.11 多态函数 在计算机学科中,多态性意味一件事物的行为取决于它当前所处的上下文环境,就像单词一样,在不同的句子中的含义也不尽相同,如下例中"东西"一词. · 迈尔斯是韩国东西大学专门研究北韩官方宣传与传播的教授. · 据谣传这所房间每天夜里都有什么东西吼叫. · 这是个交通枢纽,铁路由此向东西南北伸展出去. 同理,多态函数意味着函数在执行期间的行为由传入的具体参数决定,在JavaScript中,这些参数存储在一个被称为arguments的类数组对象中,说它是类数组是因为它本身不具

一个JavaScript函数把URL参数解析成Json对象_javascript技巧

问题:请编写一个JavaScript函数parseQueryString,它的用途是把URL参数解析为一个对象. eg:var obj=parseQueryString(url); 创建对象的三种形式: 一: var Person=new Object(); Person.name="Sun"; Person.age=24; 二: var Person=new Object(); Person["name"]="Sun"; Person[&quo