这里this为什么指的是val对象,而不是window和函数showObj对象?this怎么理解

问题描述

<SCRIPT LANGUAGE="JavaScript">var name = "woziji";function showObj(val,params){var hanshu='dd';function _new(){alert(this.name);this.ff.call(this,params);}_new.prototype = val;return new _new();}var val = {test:'gwj',ff:function(test){this.test=test;},show:function(){alert(this.test+" -- ");}};var ss = new showObj(val,'qqqqqqq');ss.show();</SCRIPT>

解决方案

this代表当前 _new 并设置了_new属性为val,_new.prototype = val; 所以你this能访问val对象,通过 函数 call apply 都能改变 this 对象

时间: 2025-01-07 07:15:09

这里this为什么指的是val对象,而不是window和函数showObj对象?this怎么理解的相关文章

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

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

jsp内置对象入门(1) 内置对象概览

jsp内置对象可以说已经接触到了jsp最核心的部分了.其实我们之前就已经接触过这一方面的知识了,大家还记得以前接受参数的时候有个request.getParameter();了吗.没错,这就是我们所讲的内置对象的一种对象里的一个方法. jsp内置对象: 在jsp之中,已经专门为用户的使用提供了许多的内置对象,所谓的内置主要指所有的对象不用再由用户自己进行对象的实例化操作,而可以直接进行使用. 例如,之前学习的request,有一个接受参数的方法,public String getParamete

在scala中,类和它的伴生对象可以相互访问对方的私有对象

在scala中,类和它的伴生对象可以相互访问对方的私有对象 class Person {   private var _age = 2   def age_=(num: Int) = this._age = num   def age = _age   def printObj { println(s"I can see ${Person.obj}") } } object Person {   // access the private class field 'age'   def

详解JavaScript的闭包、IIFE、apply、函数与对象_javascript技巧

目录 一.闭包(Closure) 1.1.闭包相关的问题 1.2.理解闭包 二.对象 2.1.对象常量(字面量) 2.2.取值 2.3.枚举(遍历) 2.4.更新与添加 2.5.对象的原型 2.6.删除 2.7.封装 三.函数 3.1.参数对象 (arguments) 3.2.构造函数 3.3.函数调用 3.3.1.call 3.3.2.apply 3.3.3.caller 3.3.4.Callee 3.5.立即执行函数表达式 (IIFE) 3.5.1.匿名函数与匿名对象 3.5.2.函数与函数

忽然间茫然之javascript函数和对象

问题描述 大家不要笑话我 前天晚上睡觉时候忽然想到这个问题 javascript对象是由函数构造的 可是我感觉貌似用函数就够了 使用对象就是为了多个继承吗 我发现自己很多时候用函数就够了 到底什么时候是必须用函数的呢 唉 脑子很乱 这样写也不知道大家看的懂我的意思不··· 问题补充:谢谢大家啦 看着大家都回复感觉无比幸福 继续研究研究 不急结贴 呵呵 解决方案 引用蔡老师说:"至于Object与Function的区别,感觉最大的还是在于原型"我的理解是Object和Function的原

Coursera Scala 4-1:函数作为对象

Coursera Scala 4-1:函数作为对象 Functions Types Relate to Classes Scala是纯粹的面向对象的语言,函数是拥有apply方法的对象. 函数类型A=>B等价于: package scala trait Function1[A,B]{ def apply(x:A):B } Functions Values Ralate to Objects 匿名函数 (x:Int) => x*x 等价于: { class AnonFun extends Fun

JavaScript学习总结(三)——闭包、IIFE、原型、函数与对象

一.闭包(Closure) 1.1.闭包相关的问题 请在页面中放10个div,每个div中放入字母a-j,当点击每一个div时显示索引号,如第1个div显示0,第10个显示9:方法:找到所有的div,for循环绑定事件. 示例代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>闭包</title> <style type="

在Delphi与C++之间实现函数与对象共享

在Delphi中调用C++函数与C++调用Delphi函数相当直接,需要注意的是,Delphi 1默认的函数调用方式是Pascal方式,Delphi 4.Delphi 5的默认方式则是优化的cdecl调用方式,即register方式.要在C++ 与Delphi程序之间实现函数共享,除非有充分的原因,否则应该使用标准系统调用方式,即stdcall方式.为了使C++编译器不将函数标记为"mangled",使Delphi编译器误认为函数是采用cdecl调用方式,应该在C++代码中,以exte

javascript用函数实现对象的方法

  本文实例讲述了javascript用函数实现对象的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html;