基本对象/原型语法问题
Basic Object/Prototype Syntax Issues
有人能澄清我代码中的错误吗?我是一个新手,只是尝试如何创建对象、原型,以及这个命令在原型上下文中指的是什么。然而,我的代码都没有在jFiddle上工作。我知道这段代码完全没有意义,但我只是想弄清楚文档在各种情况下打印的内容,以便更具体地了解对象、原型、构造函数和"this"关键字是如何工作的。但是什么都没有出现!
function Person(identity) {
this.identity = "fellow";
this.logYou = function() {
document.write('hi');
};
};
Person.prototype.logMe = function() {
document.write(this.identity);
};
var Dude = new Person("stud");
Person.logYou();
Person.logMe();
Dude.logMe();
function Person() {
this.identity = "fellow";
this.logYou = function() {
document.write('hi');
};
};
当您调用this.identity = "fellow";
时,this
关键字指的是运行函数的上下文
因此,如果您在全局范围内调用函数,this
指的是window
对象:
Person();
alert(window.identity); // fellow
如果你设置了函数,this
关键字指的是新对象:
var Dude = new Person();
alert(Dude.identity); // fellow
因此函数Person
不具有属性identity
如果你想为你的功能拥有一些属性:
Person.identity = "fellow";
alert(Person.identity); // fellow
logYou
和logMe
是存储在Person
原型上的方法,因此继承对象可以调用该函数。您不能在Person
上调用logYou
,但您可以在其子级Dude
:上调用它
Dude.logYou(); // hi
Dude.logMe(); // fellow
这两行
Person.logYou();
Person.logMe();
抛出错误并导致代码停止执行,因为logYou
和logMe
不作为Person
的属性存在。
Dude.logMe()
和Dude.logYou()
将工作,分别打印fellow
和hi
。
您不能调用
Person.logYou();
Person.logMe();
由于Person没有方法logYou
或logMe
,当您删除这两行时,您的代码将开始工作
相关文章:
- Onclick不会启动..可能存在javascript语法问题
- 基本对象/原型语法问题
- JQuery代码语法问题?(“不允许内联控制结构”)
- Javascript函数变量传递语法问题
- Jison 语法问题,生成解析器出现奇怪错误
- 使用 jssor 滑块的“空元素的 XML 样式关闭语法”问题
- 代码只是没有执行,可能有语法问题,或者我可能完全错了
- JS语法问题还是使用三个.js三个.循环中的图像加载器
- 反应 - 语法问题
- 语法问题.淘汰赛.用于过滤
- bind()存在奇怪的语法问题
- Javascript For..语法问题
- JavaScript语法问题
- javascript插件中未传递参数,html语法问题
- 数组结构中的字符串出现JSON.parse语法问题
- .createElement('object')和许多params的语法问题
- Javascript语法问题
- 有逻辑或语法问题的for循环
- JS正则表达式到Java,语法问题
- HTML 与内联动态 JavaScript 由 PHP 语法问题编写