actionscript3.0中的所有对象都是从Object类继承的,但是actionscript3.0编译器似乎不够聪明,无法理解这一点。
看看下面的代码:
package{
public class TestOne{
public function TestOne(){
var t2: TestTwo = new TestTwo();
trace(t2.toString()); // COMPILE TIME ERROR
trace((t2 as Object).toString(); // [object TestTwo]
更新2:这个问题很混乱,因为我认为ES6 class并没有修改.protototype,它是做的,因此这正是我想要的。
我接受了最广泛的答案,即使所有的答案和评论都应该在一开始就指向正确的方向:)
谢谢大家!
旧:
在旧JS中,pre ES6中,当我们学习如何使用以下方法创建“类”时:
function X() {
this.foo = function(){
}
};
var x = new X();
我们还知道,每次执行x = new X();时,我们都会得到'foo‘方法的副本,这是为什么使用prototype是个好主意的原因之一。
现在,在ES6中,我们有了这
因此,随着我在JS中了解到更多关于Prototypal Inheritance的知识,我阅读了文章中的以下内容(请阅读本链接上方的行)
请注意,当我们调用构造函数时,我们每次都定义问候(),这并不理想。为了避免这种情况,我们可以在原型上定义函数,稍后我们将讨论这个问题。
推荐的思想是在函数上添加properties,在prototype上添加methods (读)
Person.prototype.farewell = function() {
alert(this.name.first + ' has left the building. Bye for now!'
例如在PHP中
class foo{
function foo($name){ //constructor
$this->name=$name;
}
function sayMyName(){
return $this->name;
}
}
class bar extends foo{
function sayMyName(){
return "subclassed ".$this->name;
}
}
在JS中
function foo(name){
this.name=name;
}
foo.prot
我现在正在学习JS的继承,有些东西我不清楚。考虑以下代码:
function Mammal(pName){
var name = pName; //"private" variable name
this.getName = function(){ //return name via closure
return name;
}
this.mammalStuff = function(){
console.log("im a mammal!!");
}
}
Mammal.prototype.
我知道有很多类似的问题都有很多很好的答案。我试着看看经典的继承方法,或者那些闭包方法等等。不知何故,我认为它们对我来说或多或少是"hack“方法,因为它并不是javascript设计的真正目的。(如果我错了,欢迎任何人纠正我)。好吧,只要它能工作,我就会对经典的继承模式感到满意,比如:
PARENTClass = function (basevar) { do something here; };
PARENTClass.prototype = { a: b, c: d}; // prototype is auto gen
// Inheritance goes here
CHIL
我正在尝试创建一个JavaScript库,其中包含我的团队中的项目通常使用的UI组件。我有以下代码来定义库。
var libName = function() {
var _libName = this;
_libName.componentName = function () {
// Some Private Variables
var _componentName = function (args) {
// Construct the object...
};
_compon
我想知道以下两个代码段之间的区别
我理解的是,这是静态的,因为如果不使用新关键字创建实例,就可以调用getCookie和setCookie函数。
var CookieHandler = function () {};
CookieHandler.getCookie = function (key) {
};
CookieHandler.setCookie = function (key, value) {
};
这是一个例子。在这种情况下,您需要创建一个实例来调用函数。
var CookieHandler = function () {};
CookieHandler.prototyp
据我所知,最新版本的JavaScript (ES6)现在支持创建类。我还理解在ES5和早期版本的JS中创建和使用对象的通常方法是创建对象原型。那么,使用类与下面这样的原型有什么区别,以及何时使用这两种方法?:
类方法:
class Car {
constructor(brand) {
this.carname = brand;
}
printStatement() {
return "I have a " + this.carname + ".";
}
}
mycar = new Car("Toyota");