2

你好,我是JavaScript语言的新手。我开始看到一些JavaScript代码示例。

我无法理解以下代码段:

职能员工(姓名、工资){this.name=名称;this.salary=工资;this.paycheck=函数(){var monthly=this.salary/12;document.write(this.name+“:”+每月);};} var emp=新员工(“Fred”,10000);emp.paycheck();

我的问题:单词的意思是什么类内属性附近(即this.name=name;this.salary=salary;)?

提前谢谢!

1

5个答案5

重置为默认值
2

使用可以解释为“适用于实例”。自员工是一个构造函数(您可以使用新的操作符),每个实例对这些属性都有自己的值:

var me=新员工(“James”,2000000)//员工实例console.log(me.name)//打印Jamesvar you=新员工(“Michael”,2000000)//另一个实例console.log(you.name)//打印Michael

注意,这也意味着员工有自己的副本薪水方法。这并不是特别有效,因为函数的单独副本必须存储在对象的每个实例的内存中。您可以改为在原型员工对象,这意味着该方法将在所有实例之间共享。

1

在JavaScript中,这通常指的是我们的函数的“所有者”执行,或者更确切地说,对函数所属的对象执行。当我们在页面中定义忠实函数doSomething()时owner是的页面,或者更确切地说,是的窗口对象(或全局对象)JavaScript语言。然而,onclick属性由HTML元素拥有它属于。

有关更多信息,请参阅以下链接:

http://www.quirksmode.org/js/this.htmlhttp://justin.harmonize.fm/index.php/2009/09/an-introduction-to-javascripts-this/http://javascriptweblog.wordpress.com/2010/08/30/understanding-javascripts-this/

1

是对函数调用上下文的引用。

根据调用函数的方式,其值会有所不同。

在你的情况下,因为员工使用调用新的,它是对正在构造的新对象的引用。

所以当你这么做的时候。。。

this.name=名称;

…正在发生的情况是,正在创建的新对象被分配了一个属性名称,其值被设置为传递给名称函数的参数。


这里有一种方法可以证明这一点。

像这样简化你的功能。。。

变量foo;函数Employee(){foo=这个;}

所以现在所有员工dos设置为外部变量的值foo公司.

现在让我们创建一个新对象

var bar=新员工();

所以酒吧已经被分配了任何任务员工返回。如果是否构造了新对象,并将其分配给foo公司,然后foo公司酒吧应该具有相同的对象。

foo===bar;//真的
1

在这种情况下员工函数用于建造师。当新员工()使用语法(而不是简单地调用员工()),指的是您将要创建的对象,该对象稍后被指定给电磁脉冲变量。

1

它是类内属性的定义。你可以在这里阅读有关它的简短信息http://www.phpied.com/3-ways-to-define-a-javascript-class/

总是指我们正在执行的函数的“所有者”

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览已标记的其他问题问你自己的问题.